我想知道.. 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);
}
});
很好。作为第二个参数,我可以传递一个过滤器选择器:就好了。
问题:如果我想为不同的事件类型使用不同的过滤器怎么办?一个常见的用例是让 mouseenter 由主元素的子元素触发,而 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', function(event) {
console.log('enter', event.target);
}).on('mouseleave', 'a', function(event) {
console.log('leave', event.target);
}).on('click', 'li > a' function(event) {
console.log('click', event.target);
});
没有办法为事件传递对象并为每个事件设置自定义选择器——除非您为此编写自己的代码。
关于javascript - JQuery on() : how can I define filter selectors when passing events as an object?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31985468/