Javascript JQuery on():当作为对象传递事件时,如何定义筛选器选择器?

Javascript JQuery on():当作为对象传递事件时,如何定义筛选器选择器?,javascript,jquery,events,event-delegation,Javascript,Jquery,Events,Event Delegation,我在想。。第二个JQuery的on()语法像对象一样传递事件: services.on({ 'mouseenter': function(e){ console.log('enter', e.target); }, 'mouseleave': function(e){ console.log('leave', e.target); }, 'click': function(e){ console.log('click', e.target);

我在想。。第二个JQuery的on()语法像对象一样传递事件:

services.on({
  'mouseenter': function(e){
    console.log('enter', e.target);
  },

  'mouseleave': function(e){
    console.log('leave', e.target);
  },

  'click': function(e){
    console.log('click', e.target);
  }
});
好的。作为第二个参数,我可以传递一个过滤器选择器:很好

问题:如果我想为不同的事件类型使用不同的过滤器,该怎么办?一个常见的用例是由主元素的子元素触发mousenter,而由主元素本身触发mouseleave

目前,我知道的唯一方法是使用第一种语法逐个定义事件,如下所示:

services.on('mouseenter','li',function(e){
  console.log('enter', e.target);
});

services.on('mouseleave',function(e){
  console.log('leave', e.target);
});

有什么特殊的语法可以避免这种情况吗?文档的格式不清楚。

好吧,你可以将呼叫链接起来。那就少打字了

services.on('mouseenter','li',函数(事件){
console.log('enter',event.target);
}).on('mouseleave','a',函数(事件){
console.log('leave',event.target);
}).on('click','li>a'函数(事件){
console.log('click',event.target');
});
没有办法为事件传递一个对象并为每个事件提供自定义选择器,除非为此编写自己的代码