在javascript中将事件侦听器添加到音频HTML5标记

Zet*_*eta 26 javascript audio html5 event-handling

嗨我在Javascript中创建一个新的音频标签元素这是代码:

var audio = document.createElement("audio");
audio.setAttribute("id","myid");
audio.setAttribute("autoplay","autoplay");
document.body.appendChild(audio);
Run Code Online (Sandbox Code Playgroud)

在将它附加到身体之前,我想放置一个被触发的事件处理程序,我尝试过这样的事情:

audio.onended = foo;
Run Code Online (Sandbox Code Playgroud)

其中foo类似于:function foo(){alert('Hola')}

audio.setAttribute("onended","foo()");
Run Code Online (Sandbox Code Playgroud)

在这两种情况下它都不起作用.在第一种情况下,音频标签被附加而没有任何onended事件处理程序; 而在第二种情况下,附加了音频标签,onended事件在属性上,但它不会触发.

有人有什么想法?

提前致谢.

-Z-

Var*_*ant 52

尝试:

audio.addEventListener('ended', foo);
Run Code Online (Sandbox Code Playgroud)

这是添加事件侦听器的正确和标准方法.

  • 在我偶然发现这个答案之前,我试过了,$(音频).bind('onended').并不令人惊讶,它没有用.你的确如此,$(音频).bind('已结束')也是如此.在jquery-depended代码中无法决定哪个更好... (2认同)
  • 在所有绑定都是通过 jQuery 进行的 jQuery 相关代码中,当涉及到音频元素时,没有理由例外。 (2认同)