我有一些 javaScript 类(ctor+prototype 方法),我希望它们的实例能够发出 evnet。
这样使用这个类的代码就可以像这样:
var instance=new SomeObject();
instance.on('customEventName',function(event){do_stuff()}
我在 JQUery 环境中工作,对于我使用的 .trigger 和 .on 的 UI 元素,这对我来说非常有用,我一直在徘徊什么是实现与常规对象相同的感觉的最佳方式。
我正在考虑根据自定义事件名称设置 $.Callbacks() 对象的映射,并根据对象的原型(prototype)添加 .on 和 .trigger 或者我可以只持有一个初始化为空的 eventsPoint 实例变量$() 并将原型(prototype)中的 .on 和 .trigger 方法连接到此 eventsPoint 对象。
任何其他/更好的想法?
最佳答案
jQuery 实际上允许您非常简单地执行此操作,就像您对 DOM 元素所做的那样:
var instance = new SomeObject();
$(instance).on("customEventName", function () {
do_stuff();
})
// Later...
$(instance).trigger("customEventName");
所有事件处理程序都存储在 jQuery 的内部数据存储中,jQuery 会向您的对象添加一个属性,该属性保存该存储中的数据索引。
关于javascript - 使用 Jquery 允许常规 JS 对象上的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109895/