我在一个页面上有许多元素,当用户点击"播放"或"暂停"按钮时,我想暂停页面上的任何其他音频。
下面的代码每次都在前两次点击中工作,然后在之后不规律地工作,我不知道为什么:
$('audio').on 'click', ()->
$('audio').not($(this))[0].pause()
解决方案:
$('audio').on 'click', ()->
$playlist = $('audio').not(this)
for $track in $playlist
$track.pause()
-
.not()
也可以接受DOM元素,因此您不需要严格地将其包装在$()
中。 - 您当前的代码似乎只暂停它发现的第一个
audio
。您可以使用.each()
之类的东西来迭代选择器的所有结果。
在不需要看更多代码的情况下,我只能推荐以下内容:
$('audio').on 'click', () ->
$('audio').not(this).each () ->
this.pause()