我可以在带有 JavaScript 事件的元素之间传输数据吗?
Can I transfer data between elements with a JavaScript event?
我正在为 web/app 创建工具 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);
});
这样的事情可能吗?
澄清一下,活动 trigger/receive 有效,但我可以通过活动转移 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/
我正在为 web/app 创建工具 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);
});
这样的事情可能吗?
澄清一下,活动 trigger/receive 有效,但我可以通过活动转移 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/