属性 值更改后是否起作用?

Do function after a property value changes?

我有一个 HTML5 音频标签,我想在每次 "currentTime" 属性 音频变化时执行一个函数。

我可以用

得到 currentTime

$('#myAudio').prop('currentTime');

但我不知道如何处理这种事件。我尝试了很多插件来观察这种变化,但我无法让它发挥作用。请帮忙

也许本机 timeupdate 事件就是您要查找的内容(参见 the docs on MDN):

document.addEventListener('timeupdate', function(e) {
  var audioElement = e.target;

  // do something
});

根据文档:

The timeupdate event is fired when the time indicated by the currentTime attribute has been updated.

编辑

正如评论中指出的那样,将事件附加到文档将侦听源自页面上所有音频元素的所有 timeupdate 事件。但是,这超出了问题的范围,因此事件处理程序内部的业务逻辑留给它的具体实现。

附加到文档的一个好处是您可以自动支持动态生成的音频元素,而无需重新附加陈旧的事件侦听器。但是,在检查触发事件的目标(由 e.target 提供)以及您想对该元素做什么或不做什么时,它可能会引发大量蠕虫。