中指定的事件首先:对不起我的英语不好。Javascript函数绑定对象
我创建,在输入得到一个JavaScript对象与此格式的功能:
var input = {
'selector1' : {
'event1' : function(element,value){
// ...
},
'event2' : function(element,value){
// ...
},
...
'eventN' : function(element,value){
// ...
}
},
'selector2' : {
'event1' : function(element,value){
// ...
},
'event2' : function(element,value){
// ...
},
...
'eventN' : function(element,value){
// ...
}
}
}
我的功能绑定的事件是这样的:
function event_binder(events_fns){
for(sel in events_fns){
for(ev in events_fns[sel]){
$(sel).on(ev,function(){
console.log(sel+'+'+ev);
var th = $(this);
var func_to_call = events_fns[sel][ev];
func_to_call(th,th.html());
});
}
}
}
但是当我运行它,它显示每个事件都被绑定到最后的事件。
我创建了一个对的jsfiddle更好地解释我的问题: http://jsfiddle.net/Polmonite/6rRgr/
由于执行console.log建议,似乎总是事件结合使用最后 功能的对象。 如果我解释正确,似乎'.on' 函数的评估只发生在最后,所以它使用'sel'和'ev'变量的最后一个值(一个范围问题),但我不太了解如何解决它。
谢谢。
编辑:我需要指定一件事:我想创建一个'event_binder'函数的工作版本,而不是jsfiddle的工作版本,这只是一个例子。
@Anton:我的目标是创建问题中指定的函数'event_binder'的工作版本。也许它不清楚,对此感到遗憾。我将编辑该问题。 – Polmonite