将自定义数据传递给模拟的JavaScript事件

Pass custom data to a simulated JavaScript event

本文关键字:模拟 JavaScript 事件 自定义 数据      更新时间:2023-09-26

我希望能够将自定义数据传递给模拟的JavaScript事件,这样我就可以在事件侦听器回调中唯一地识别这个模拟事件。例如,如果我打电话给:

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

如何将数据传递到此事件,然后从事件侦听器回调中检索数据?

只需将数据添加到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);

第页。S请注意,在某些浏览器中,参数是不够的,所有参数都是必需的,否则会引发异常。我不确定你想要支持哪些浏览器。有关所有参数,请参见:https://developer.mozilla.org/en/docs/DOM/event.initMouseEvent