2

カスタム イベントをオブジェクトにディスパッチできることがわかりました。

  1. なぜカスタム イベントをオブジェクトにディスパッチする必要があるのか​​疑問に思っています。

  2. 設定した間隔でイベントをトリガーしたいのですが、カスタム イベントに関するドキュメントを読んでも、関数を使用してイベントをトリガーする方法がわかりません。それはどのように行われますか?

たとえばsetInterval()、カスタム イベント「nextTime」を 30 秒ごとにトリガーするために使用したいと考えています。

4

1 に答える 1

1

イベントをディスパッチすることは、それらをトリガーすることと同じです。これらはカスタム イベントであるため、何かによって自然にトリガーされることは決してないため、自分でトリガーする必要があります。間隔からイベントをトリガーするには、間隔内でイベントをディスパッチするだけです。

オブジェクトが必要な理由は、それがイベント ハンドラーであるためです。オブジェクトが要素にアタッチされていない場合、実際にはイベント ハンドラーは必要なく、代わりに通常の関数を使用できます。

var event = new Event('custom'),
    elem  = document.getElementById('test');

elem.addEventListener('custom', function (e) {
    console.log('custom triggered');
}, false);

setInterval(function() {
    elem.dispatchEvent(event);
}, 30000);

フィドル

于 2014-03-27T20:54:52.983 に答える