关于视图中的delegateEvents的快速问题 - 我们可以在单个事件定义中指定多个事件绑定吗?
例如,而不是:
'keyup .text-input': 'textEvents',
'keydown .text-input': 'textEvents',
'focusin .text-input': 'textEvents',
'focusout .text-input': 'textEvents',
'click .text-input': 'textEvents',
...
这可能吗?
'keyup keydown focusin focusout click .text-input': 'textEvents',
答案 0 :(得分:7)
不,你不能这样做。来自fine manual:
事件以
格式编写{"event selector": "callback"}
event
隐式地是一个单词(就像在jQuery和DOM事件中一样),而selector
可以是任何jQuery样式的选择器。此外,this.events
中的键是使用this regex解析的:
var delegateEventSplitter = /^(\S+)\s*(.*)$/;
所以event
是第一个组件,只有第一个组件。
您可以自己构建events
对象并手动调用delegateEvents
:
var catch = ['keyup', 'keydown', 'focusin', 'focusout', 'click'];
var events = { };
_(catch).each(function(ev) { events[ev + ' .text-input'] = 'textEvents' });
this.delegateEvents(events);