本文介绍了可以有简单的Javascript对象有事件吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可以使用简单的Javascript对象附加事件吗?说这样: obj = new Object();
obj.addEventListener('doSomething',foo,true);
我知道我可以用jQuery做这个,但是没有任何图书馆可以吗?
解决方案
您必须实现自己的功能,但这不是很难。
如果(!(eventName在这里),则$ obj = {
event:{},
addEventListener:function(eventName,handler) .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 ](参数);
}
}
},
点击:function(){
//自定义点击功能。当这个被调用时,你会做任何你想要的点击。然后提高事件:
this.raiseEvent('onClick');
}
};
Can plain Javascript objects have event attached to them? Say something like this:
obj = new Object();
obj.addEventListener('doSomething', foo, true);
I know i can do this with jQuery, but is it possible without any library?
解决方案
You'll have to implement your own functionality for that, but that's not very hard.
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对象有事件吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!