我可以将jQuery的事件函数与普通的旧对象一起使用吗?

时间:2011-11-11 22:29:00

标签: jquery events

jQuery具有.on().trigger()等功能,可以将事件附加到DOM对象,然后手动触发这些事件。这些函数的文档特别指的是“元素”上的事件,我将其称为HTML / DOM元素。

我是否还可以使用这些函数向普通的旧JavaScript对象添加事件功能?

var x = {};
$(x).on('bonk', function() { alert('Oif!'); });
$(x).trigger('bonk'); // shows the alert

这适用于我在其中测试过的所有浏览器(Chrome 15,FireFox 7,IE 9和Opera 11.52,所有这些都在Windows上),这似乎很有希望。但是从文档中不清楚它是否实际上意味着在所有平台上的所有浏览器中都是受支持的场景。文档选择的术语(“元素”)引起了很多疑问。

文档执行表明我可以编写自己的事件名称(例如,.on()的文档页面有一个示例“附加并触发自定义(非浏览器)事件“)。但是,仍然会将事件附加到DOM元素,而不是普通的旧对象。

是否有任何明确说明jQuery是否支持使用普通旧JavaScript对象的.on().trigger()

1 个答案:

答案 0 :(得分:2)

查看源代码我发现了一些提示,但我发现了这个:

  

没有特别的理由说明为什么没有记录(除此之外)   对于大多数用户而言,这是非传统的) - 但是,是的,我们支持它   有单元测试。

http://forum.jquery.com/topic/triggering-custom-events-on-js-objects