如何在javascript中删除动态创建的音频元素?

时间:2017-01-19 19:53:11

标签: javascript jquery audio createelement

我每30秒刷新一次脚本以检查更改。返回的数据设置音频元素的src。

如果数据已更改,我将src属性更改为匹配,但onClick - 我听到两个音频文件一起播放。

这里发生了什么,如何删除以前的音频文件?

(function fetchCal() {
$.getJSON('events', function(data) {

//I need to clear any previously created elements here

  var nowAudio = document.createElement('audio');
  nowAudio.setAttribute('src',"audio/"+data.uid+"."+data.nowTitleURL+".mp3" );

  $('.now').click(function() {
      nowAudio.play();
  });

})
setTimeout(fetchCal, 30000); //refresh calendar every 30 secs
})();

注意:$( "audio" ).remove();无效

1 个答案:

答案 0 :(得分:1)

您将多个clcicks绑定到同一元素,因此它始终具有先前的单击事件。你需要解开它。

$('.now').off("click.audio").on("click.audio", function() {
  nowAudio.play();
});