点击功能多次运行

时间:2015-01-27 18:46:00

标签: jquery html5-audio

我在页面上的href中有三个音频链接,如下所示 -

<a href="https://s3.amazonaws.com/tuneables/Guided+Activities+Sounds/Do+bell.mp3" class="sound" title="D above middle C" target="_blank" style="color: rgb(5, 134, 209);">Do</a>

<a href="https://s3.amazonaws.com/tuneables/Guided+Activities+Sounds/Mi+bell.mp3" class="sound" title="F# above middle C" target="_blank" style="color: rgb(5, 134, 209);">Mi</a>

<a href="https://s3.amazonaws.com/tuneables/Guided+Activities+Sounds/So+bell.mp3" class="sound" title="A above middle C" target="_blank" style="color: rgb(5, 134, 209);">Sol</a>

现在我想在同一页面上播放Html5音频中的所有这三个音频,而无需在点击时重定向到href链接。所以我写了这个Jquery代码 -

<script type="text/javascript">
      $j(document).ready(function() {   
            $j('.sound').click(function(event) {

                        var str =this.href;
                        var sound='<audio class="audio" controls><source src="'+str+'" type="audio/ogg"><source src="'+str+'" type="audio/mpeg"></audio>'; 
                        $j(sound).trigger('play');
                        return false;
          });
       });  
</script>

但此代码在点击任何音频链接时执行三次,然后同时播放该音频三次。我想只播放一次音频。

我希望有人能理解我的问题并帮助我。

先谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个(在那里添加event.stopImmediatePropagation())

<script type="text/javascript">
      $j(document).ready(function() {   
            $j('.sound').click(function(event) {

                        var str =this.href;
                        var sound='<audio class="audio" controls><source src="'+str+'" type="audio/ogg"><source src="'+str+'" type="audio/mpeg"></audio>'; 
                        $j(sound).trigger('play');
                        event.stopImmediatePropagation()
                        return false;
          });
       });  
</script>