Coffeescript HTML5音频暂停所有其他音频元素



我在一个页面上有许多元素,当用户点击"播放"或"暂停"按钮时,我想暂停页面上的任何其他音频。

下面的代码每次都在前两次点击中工作,然后在之后不规律地工作,我不知道为什么:

$('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()

相关内容

最新更新