jquery - jquery UI Tabs - 在幻灯片更改时运行脚本
问题描述
我已经搜索并阅读了多个论坛,但我似乎无法解决这个问题。
设置:我在其中一个选项卡中设置了一个简单的 jquery 音频播放器。当有人单击歌曲标题时,它会在名为#gs-audio 的 div 中播放该音频。如果他们单击另一首歌曲标题,它会更改曲目,或者,如果他们重新单击同一首歌曲,它会暂停音频。
问题:如果有人点击另一个标签,音频会继续播放
我试过的:
$(".tabs-outter-wrapper").tabs({
show: { effect: "slide", duration: 800, direction: "right" },
hide: { effect: "slide", duration: 800, direction: "left" },
show: function(event, ui) {
var audioElement = document.getElementById("gs-audio"),
current = audioElement.getAttribute("src");
if (typeof current !== typeof undefined && current !== false) {
audioElement.pause();
}
}
});
我曾尝试将第二个更改show
为activate
但似乎都不起作用。
解决方案
您有正确的想法,因为您需要运行一些逻辑来在选项卡更改时更新音频元素的状态,但是您没有使用正确的属性。
show
用于设置选项卡更改时动画的使用方式。您需要使用activate
orbeforeActivate
代替:
var audioElement = document.getElementById("gs-audio");
$(".tabs-outter-wrapper").tabs({
show: {
effect: "slide",
duration: 800,
direction: "right"
},
hide: {
effect: "slide",
duration: 800,
direction: "left"
},
activate: function(e, ui) {
audioElement.pause();
}
});
请注意,条件不需要if
检查 的当前 URLaudio
以查看它是否已经在播放,pause()
不管它。
推荐阅读
- c# - 添加字段时的C#逻辑问题
- arrays - 将结构数组保存/检索到 iCloud
- python - 如何将两列熊猫数据框绘制为水平条形图?
- excel - 编写一个宏,用于在B列中搜索字符串值并获取多行的A列值
- python - 多个子流程需要很长时间才能完成
- javascript - 如何在网页中显示外部 html 页面 - 使用 javascript
- python - 在没有 python 中的所有样板的情况下从 QUiLoader 加载是否安全?
- go - 关闭频道的正确方法
- jquery - 更新 YouTube 频道徽标的 Aria-Label
- sms - Twilio SMS 消息传递 2 路