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

标签 javascript jquery jquery-events

我正在为网络/应用程序创建工具构建一个小部件系统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/

关于javascript - 我可以使用 JavaScript 事件在元素之间传输数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39178555/

相关文章:

javascript - 使用 jQuery 触发跨度单击

javascript - HTML5 Canvas : adding collision to constantly drawn images

jquery - jQuery ajax 接受 attrib 有什么意义?它实际上有什么作用吗?

javascript - 在 JavaScript 中从 URL 中检索 ID 参数

jquery - .replace() 出现问题 - 仅适用于第一个匹配的字符?

javascript - jQuery `.parent().remove()` 不工作

jquery - 如何使用 jQuery 重载 focusOut?

javascript - 将 Javascript 代码发送到浏览器

javascript - .Net MVC 将 ViewBag 值分配给 JavaScript 脚本变量问题

javascript - 滚动到页面顶部(在 chrome 中不起作用)