我可以用JavaScript事件在元素之间传输数据吗?

Can I transfer data between elements with a JavaScript event?

本文关键字:传输 数据 之间 元素 JavaScript 事件 我可以      更新时间:2023-09-26

我正在为web/应用程序创建工具Weld构建一个小部件系统,我希望能够在DOM元素之间传输数据。

理想情况是:

var myObject = { name: 'Bob', age: 35 };
// Send change event with data
$('#myElement').trigger('change', myObject);
// Listen to change event and receive data
$('#myElement').change(function (event, myObject) {
    console.log('#myElement received', myObject);
});

这样的事情可能吗?

澄清一下,事件触发/接收工作,但我能否以某种方式将myObject与事件一起传输?

是有可能的。请记住,$.trigger最终会在任何侦听器上使用Function.apply,因此您传递给触发器的额外参数需要位于数组中:

var myObject = { name: 'Bob', age: 35 };
// Send change event with data
$('#myElement').trigger('change', [myObject, 'hi']);
// Listen to change event and receive data
$('#myElement').change(function (event, myObject, someMessage) {
    console.log('#myElement received', myObject, someMessage);
});

这在文档中有概述:http://api.jquery.com/trigger/