尝试在音频结束事件中绑定音频重播事件。我无法访问附加了音频结束事件的实际父对象。
var audio = new Audio('audiofile.mp3');
audio.addEventListener('ended', function() {
$("#replayButton").bind('click', function(){
audio.play(); //why i couldn't access the audio object
});
});
答案 0 :(得分:1)
您可以在外部函数中绑定变量:
audio.addEventListener('ended', function() {
var self = this;
$("#replayButton").bind('click', function(){
self.play(); //why i couldn't access the audio object
});
});
但是,将事件处理程序绑定到另一个事件处理程序中通常不是一个好主意。当您重放音频时,当它结束时,您将绑定另一个单击处理程序。因此,如果用户再次点击重播按钮,它将开始播放两次。
.one()
方法可能更适合此方法,因此click
处理程序仅在每次结束后运行一次。所以它应该是:
audio.addEventListener('ended', function() {
var self = this;
$("#replayButton").one('click', function(){
self.play(); //why i couldn't access the audio object
});
});