普通 Javascript 对象可以附加事件吗?像这样说:
obj = new Object();
obj.addEventListener('doSomething', foo, true);
我知道我可以用 jQuery 做到这一点,但是没有任何库是否可行?
最佳答案
您必须为此实现自己的功能,但这并不难。
var obj = {
events: {},
addEventListener: function(eventName, handler) {
if(!(eventName in this.events))
this.events[eventName] = [];
this.events[eventName].push(handler);
},
raiseEvent: function(eventName, args) {
var currentEvents = this.events[eventName];
if(!currentEvents) return;
for(var i = 0; i < currentEvents.length; i++) {
if(typeof currentEvents[i] == 'function') {
currentEvents[i](args);
}
}
},
click: function() {
// custom 'click' function. when this is called, you do whatever you
// want 'click' to do. and then raise the event:
this.raiseEvent('onClick');
}
};
关于javascript - 普通 Javascript 对象可以有事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2086956/