日期:2014-05-16 浏览次数:20361 次
js 实现多事件绑定,既适i用于自定义事件,也可以适用于系统事件,而且支持参数传递 源代码:
function createFunction(obj,func){ var args=[]; if(!obj){ obj=window;} for(var i=2;i<arguments.length;i++){ args.push(arguments[i]) } return function(){ obj[func].apply(obj,args); } } function eventDemo(){ } eventDemo.prototype={ show:function(){ if(this.events){ for(var i=0;i<this.events.length;i++){ this.events[i](); } } }, attachEvents:function(eventHandler){ if (!this.events) this.events=[]; this.events.push(eventHandler); } } var obj=new eventDemo(); var userName1="jake1"; var userName2="jake2"; function objOnShow1(userName){ alert(userName+" execute a onShow event"); } function objOnShow2(userName){ alert(userName+" execute a onShow event"); } obj.attachEvents(createFunction(null,"objOnShow1",userName1)); obj.attachEvents(createFunction(null,"objOnShow2",userName2)); obj.show();