我想知道..第二个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);
}
});
精细。作为第二个参数,我可以传递过滤器选择器:就好了。
问题:如果我想为不同的事件类型使用不同的过滤器怎么办?一个常见的用例是主要elem的孩子触发了mousenter,而主要的elem触发了mouseleave。
目前,我知道这样做的唯一方法就是逐个定义事件,使用第一种语法,如下所示:
services.on('mouseenter','li',function(e){
console.log('enter', e.target);
});
services.on('mouseleave',function(e){
console.log('leave', e.target);
});
是否有任何特殊语法可以避免这种情况?形成文档尚不清楚。
答案 0 :(得分:1)
好吧,你可以连结电话。这样就不那么打字了。
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);
});
无法为事件传递对象并为每个事件设置自定义选择器 - 除非您为此编写自己的代码。