0

私がこのようなものを持っているクロームの例を教えてください:

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

これは主に、5秒後に発生するカスタムイベントを作成する方法を示すためのものです。また、属性を使用しdata-て現在の時刻を保存しています。あなたがifブロックで何をしているのか、私にはよくわかりません。なぜなら.updatedTime.currentTime私には、それぞれが同じことをしているように見えるからです。

于 2012-09-09T18:26:57.867 に答える