aralejs / events

Events Utility
aralejs.org/events/
34 stars 41 forks source link

绑定多事件时无法获得触发的事件名 #7

Closed lianqin7 closed 11 years ago

lianqin7 commented 11 years ago
xx.on('event1 event2 event3', handle);

handle 里无法得知是哪个事件触发的handle

一个简单的方式: 对handle追加最后一个参数 即 eventType

xx.on('event1 event2 event3', function(){
    var eventType = arguments[arguments.length - 1];
});
popomore commented 11 years ago

确实没有,只有在 all 的时候有

xx.on('all', function(eventName) {

})

纠结放在哪里

lepture commented 11 years ago

如果需要判断 eventType 的话就说明不共用 handle,也就是说应该分开写。

popomore commented 11 years ago

这个还是不改了,看了下 backbone 也是这样的。

可以按照 @lepture 说的把相同的内容抽成一个函数。

popomore commented 11 years ago

这种场景也可以用 all

obj.on('all', function(eventType){
  switch (eventType) {
    case 'a':
    case 'b'
  }
})