0

你能给我一个chrome的例子吗,我有这样的东西:

function checkVideoStatus(vidElement){
   var currentTime = vidElement.currentTime;
   //now wait 5 seconds
   var updatedTime = vidElement.currentTime;
   //now check if video has freezed
   if(updatedTime == currentTime){
      //fire videoFreeze Event
   }

}

所以我想在这里触发这个事件。另外,真的有必要触发这个事件吗,因为我已经可以在这里调用相关的方法来做我想做的事情了?

是在 JS 中,事件只是像 onChange、onMouseOver 等吗?

4

1 回答 1

4

这是一个自定义事件和倒计时的简单模型。

<div id="vid" data-current="0">Video</div>​

var vid = document.getElementById('vid'),
    freeze;

vid.addEventListener('freeze', function() {
    console.log('Firing vid.freeze.... ' + this.dataset.current);
    console.log('vid.freeze fired.');
});

(function go() {
    var status;
    vid.innerHTML = 'Video time: ' + vid.dataset.current;

    if (vid.dataset.current < 5) {
        status = vid.dataset.current == 0 ? 'Starting... ' : 'Continuing... ';
        console.log(status + vid.dataset.current);
        setTimeout(go, 1000);
    } else {
        freeze = document.createEvent('CustomEvent');
        freeze.initEvent('freeze', true, true);
        vid.dispatchEvent(freeze);
    }

    vid.dataset.current++;
})();​

http://jsfiddle.net/userdude/Ampbm/1

这主要是为了展示如何制作一个在五秒后触发的自定义事件。我还使用该data-属性来存储当前时间。你在if街区里做什么我不太确定,因为在我看来.updatedTime.currentTime每次都可能是同一件事。

于 2012-09-09T18:26:57.867 回答