我有点用这样的对象来模拟 Backbone 的事件系统:
var events = {
'click .one': 'fnOne',
'click .two': 'fnTwo',
'click .three': 'fnThree'
}
然后使用 jquery 设置事件侦听器,我使用以下内容:
var method,
match,
event_name,
selector;
var scope = {
// Complex object literal passed to the event's
// function for access...
};
var delegateEventSplitter = /^(\S+)\s*(.*)$/;
for (key in events) {
if (events.hasOwnProperty(key)) {
method = events[key];
match = key.match(delegateEventSplitter);
event_name = match[1];
selector = match[2];
$('#element').on(event_name,selector,function(event){
method(event,scope);
});
}
}
我遇到的问题是它绑定正确,除了所有事件都会触发最后一个函数fnThree