如何删除 javascript 中动态创建的音频元素?
How to remove dynamically created audio element in javascript?
我每 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();
无效
您正在将多次点击绑定到同一个元素,因此它将始终具有之前的点击事件。您需要解除绑定。
$('.now').off("click.audio").on("click.audio", function() {
nowAudio.play();
});
我每 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();
无效
您正在将多次点击绑定到同一个元素,因此它将始终具有之前的点击事件。您需要解除绑定。
$('.now').off("click.audio").on("click.audio", function() {
nowAudio.play();
});