中指定的事件首先:對不起我的英語不好。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