1

jQueryカスタムイベントに関するこの質問と同様に、return false; jQueryを使用していないことを除いて、その効果を調べようとしています。次の方法でカスタムイベントをトリガーしています。

var event = document.createEvent('Event');
event.initEvent('CustomName', false, true);
element.dispatchEvent(event);

これは関数にラップされており、イベントをディスパッチした後にイベントオブジェクトを返します。今、私はトリガーコードでリスナーの1つが戻ったかどうかを確認する方法を探しています。これにより、falseそれ以上の実行を防ぐことができます。falseリスナーの1人がクロスブラウザー方式(IE 7+)で戻ってきたかどうかをどのように検出できますか?

4

1 に答える 1

1

作成されたイベントがバブルスルーするかどうかを指定します

(編集)次の例を考えてみましょう:

var evt = document.createEvent('Event');
evt.initEvent('myevent', true, true); // the third argument here specifies whether the event can be cancelled
var elem = document.getElementById('mydiv');
elem.addEventListener('myevent', function(e){
    e.preventDefault();
}, true);
console.log(elem.dispatchEvent(evt)); //Here you will get return value of false because in the event handler you called e.preventDefault()

問題は、IE 7以降で動作させたいが、IE7および8はそもそもdocument.createEventをサポートしていないことです。

于 2013-01-03T22:19:42.103 に答える