jQuery具有.on()和.trigger()等函数,可以将事件附加到DOM对象,然后手动触发这些事件.这些函数的文档特别指的是"元素"上的事件,我将其称为HTML/DOM元素.
我还可以使用这些函数向普通的旧JavaScript对象添加事件功能吗?
var x = {};
$(x).on('bonk', function() { alert('Oif!'); });
$(x).trigger('bonk'); // shows the alert
Run Code Online (Sandbox Code Playgroud)
这适用于我在其中测试过的所有浏览器(Chrome 15,FireFox 7,IE 9和Opera 11.52,都在Windows上),这看起来很有希望.但是从文档中不清楚它是否真的意味着在所有平台上的所有浏览器中都是受支持的场景.文档选择的术语("元素")引起了很多疑问.
文档确实说明我可以编写自己的事件名称(例如,.on()的doc页面有一个"附加和触发自定义(非浏览器)事件"的示例).但是,仍然会将事件附加到DOM元素,而不是普通的旧对象.
有没有明确说明jQuery是否支持.on()以及.trigger()普通的旧JavaScript对象的东西?
查看源代码,我发现了一些暗示,但后来我也发现了这一点:
没有特别的原因为什么它没有被记录(除了它对于大多数用户来说相当非传统) - 但是,是的,我们支持它并对其进行单元测试。
http://forum.jquery.com/topic/triggering-custom-events-on-js-objects
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |