javascript - 如何使用 JQuery 使音频仅播放一次?

标签 javascript jquery html audio

所以我有一个 div,单击它时会播放 mp3 声音。而不是玩一次。它继续一遍又一遍地播放。代码片段是:

  $(".g-contain").click(function() {
       audioElement.play();
    });

这可能无关紧要,但我想我应该向您展示整体代码:

      /* set no cache */
      $.ajaxSetup({ cache: false });


          var audioElement = document.createElement('audio');
        audioElement.setAttribute('src', 'https://www.dropbox.com/s/k8xaglyd48vbnq1/pacman_chomp.mp3?dl=1');

        audioElement.addEventListener('ended', function() {
            this.play();
        }, false);


      $.getJSON("scripts/data", function(data) {
        var html = [];

        /* loop through array */
        $.each(data, function(index, g) {

        $(".container").append(
            "<div class='g-details'><div class='name'>" +
              g.name + "</div>);

 // And finally my click call is here

 $(".g-contain").click(function() {
      audioElement.play();
 });

不确定为什么单击 g-contain div 时 mp3 文件继续播放

最佳答案

这是由于这段代码:

audioElement.addEventListener('ended', function() {
        this.play();
}, false);

您将事件监听器附加到音频元素,以便在播放结束时重新播放。因此,一旦播放(通过点击),它将无限播放。

来自MDN ended event Reference :

ended

The ended event is fired when playback or streaming has stopped because the end of the media was reached or because no further data is available.

只需删除此代码即可。

关于javascript - 如何使用 JQuery 使音频仅播放一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44731915/

相关文章:

Jquery Mobile 水平按钮

javascript - Javascript 中的 C3 图表 json 数据格式

javascript - JS退格按键事件有时触发,有时不触发

javascript - 将访问 token 从 Facebook JS sdk 传递到 PHP session 或 cookie

javascript - 如何获取点击的条形图工具提示数据?

javascript - JQUERY 检索和删除 previous sibling 姐妹

jquery - 通过单击链接将类添加到另一个页面的主体?

html - 输入中 bootstrap 4 中的图标

html - 如何让 div 覆盖网页的整个宽度,而不仅仅是视口(viewport)?

javascript - 如何查看提交表单的 url 输出?