javascript为chrome发送自定义事件

时间:2012-09-09 17:36:52

标签: javascript javascript-events

你能给我一个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等吗?

1 个答案:

答案 0 :(得分: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在我看来可能是相同的事情。