jQuery - 为音频播放器添加类到最近 Div
jQuery - addClass to Nearest Above Div for Audio Player
我有一个正在使用的 html5 音频播放器 (http://73rhodes.github.io/bbplayer/)
我正在尝试在播放器播放时将 class 添加到播放器上方的 div。页面上有多个播放器具有相同的设置,所以不知何故我只想将它应用于上面的第一个 div class "musicianspan".
我的尝试是在脚本的最后一行使用 "closest"。但它不起作用。不知何故,我需要将 "glow" class 应用于上面的 "musicianspan" div。有任何想法吗?谢谢!
<!-- Player 1 -->
<div class="musicianspan"></div>
<span class="bbplayer">
<span class="bb-play bb-paused"></span>
<span class="bb-trackLength">03:25</span>
</span>
<!-- Player 2 -->
<div class="musicianspan"></div>
<span class="bbplayer">
<span class="bb-play bb-paused"></span>
<span class="bb-trackLength">03:25</span>
</span>
<!-- Player 3 -->
<div class="musicianspan"></div>
<span class="bbplayer">
<span class="bb-play bb-paused"></span>
<span class="bb-trackLength">03:25</span>
</span>
<script>
BBPlayer.prototype.updateDisplay = function () {
var audioElem = this.bbaudio;
var duration = toTimeString(Math.ceil(audioElem.duration));
this.bbplayer.getElementsByClassName('bb-trackLength').item(0).innerHTML = duration;
if (this.bbaudio.paused) {
playButton.classList.remove("bb-playing");
playButton.classList.add("bb-paused");
} else {
playButton.classList.remove("bb-paused");
playButton.classList.add("bb-playing");
this.bbplayer.closest('.musicianspan').addClass('glow');
}
};
</script>
这行得通吗(替换你的最后一行)?
this.bbplayer.prev().addClass('glow');
说明: 获取匹配元素集中每个元素的前一个兄弟元素。如果提供了一个选择器,它只会检索与该选择器匹配的前一个兄弟。
您必须将 this.bbplayer
元素包装在 jQuery 函数中才能使用其方法。所以以下应该有效:
$(this.bbplayer).closest('.musicianspan').addClass('glow');
我有一个正在使用的 html5 音频播放器 (http://73rhodes.github.io/bbplayer/)
我正在尝试在播放器播放时将 class 添加到播放器上方的 div。页面上有多个播放器具有相同的设置,所以不知何故我只想将它应用于上面的第一个 div class "musicianspan".
我的尝试是在脚本的最后一行使用 "closest"。但它不起作用。不知何故,我需要将 "glow" class 应用于上面的 "musicianspan" div。有任何想法吗?谢谢!
<!-- Player 1 -->
<div class="musicianspan"></div>
<span class="bbplayer">
<span class="bb-play bb-paused"></span>
<span class="bb-trackLength">03:25</span>
</span>
<!-- Player 2 -->
<div class="musicianspan"></div>
<span class="bbplayer">
<span class="bb-play bb-paused"></span>
<span class="bb-trackLength">03:25</span>
</span>
<!-- Player 3 -->
<div class="musicianspan"></div>
<span class="bbplayer">
<span class="bb-play bb-paused"></span>
<span class="bb-trackLength">03:25</span>
</span>
<script>
BBPlayer.prototype.updateDisplay = function () {
var audioElem = this.bbaudio;
var duration = toTimeString(Math.ceil(audioElem.duration));
this.bbplayer.getElementsByClassName('bb-trackLength').item(0).innerHTML = duration;
if (this.bbaudio.paused) {
playButton.classList.remove("bb-playing");
playButton.classList.add("bb-paused");
} else {
playButton.classList.remove("bb-paused");
playButton.classList.add("bb-playing");
this.bbplayer.closest('.musicianspan').addClass('glow');
}
};
</script>
这行得通吗(替换你的最后一行)?
this.bbplayer.prev().addClass('glow');
说明: 获取匹配元素集中每个元素的前一个兄弟元素。如果提供了一个选择器,它只会检索与该选择器匹配的前一个兄弟。
您必须将 this.bbplayer
元素包装在 jQuery 函数中才能使用其方法。所以以下应该有效:
$(this.bbplayer).closest('.musicianspan').addClass('glow');