在一个单击函数中,我可以选择播放音频。
点击事件只触发一次(加上.off()
后,我好像必须为每个单击事件都这样做,因为我认为有些基本的JavaScript工作方式我不太理解),但添加到“ended”侦听器的函数显示它正在触发按钮已单击的次数。我推测.play()
也被多次触发。
这些需要在单击事件内部以获取id,那么在使用js时如何防止这些事情发生,无论是在这里还是其他地方?随处添加event.stopPropagation()
、event.bubbles = false
和.off()
似乎是不必要的(而且在这种情况下也没有任何区别)。
$('.button').off().on('click', function(event){
event.stopPropagation();
event.bubbles = false;
var id = $(this).attr('id')
if ($(this).hasClass('hasAudio')) {
document.getElementById('audio_'+id).play();
document.getElementById('audio_'+id).addEventListener("ended", function(){
console.log("ended");
});
}
});