2

シミュレートされたJavaScriptイベントにカスタムデータを渡して、イベントリスナーコールバックでこのシミュレートされたイベントを一意に識別できるようにしたいと考えています。たとえば、私が電話した場合:

var event = document.createEvent("MouseEvents");
var args = ['mousemove', true, true, window, 1, 0, 0];
event.initMouseEvent.apply(event, args);
target.dispatchEvent(event);

このイベントにデータを渡して、イベントリスナーのコールバックからデータを取得するにはどうすればよいですか?

4

1 に答える 1

4

そのデータをオブジェクトに追加するeventだけで十分です。

target.addEventListener("mousemove", function(e) {
    console.log(e.data);
}, false);

var event = document.createEvent("MouseEvents");
var args = ['mousemove', true, true, window, 1, 0, 0];
event.data = "foobar";
event.initMouseEvent.apply(event, args);
target.dispatchEvent(event);

PS一部のブラウザでは引数が十分でないことに注意してください。すべてが必要です。そうでない場合、例外がスローされます。サポートしたいブラウザがわかりません。すべての引数については、https ://developer.mozilla.org/en/docs/DOM/event.initMouseEventを参照してください。

于 2013-02-10T23:30:42.900 に答える