jQuery的"on()"方法,可以使用事件委托,例如:
el.on('click','.sub',function(){});
同时,也可以分别设置不同事件的处理函数,例如:
el.on({
'click':function(){},
'mousemove':function(){}
});
现在的问题是,如何结合上述两种书写方式的特性,使代码更简洁?
jQuery的"on()"方法,可以使用事件委托,例如:
el.on('click','.sub',function(){});
同时,也可以分别设置不同事件的处理函数,例如:
el.on({
'click':function(){},
'mousemove':function(){}
});
现在的问题是,如何结合上述两种书写方式的特性,使代码更简洁?
过度追求简洁没有意义。如果硬要把两种结合起来写的话,手写代理就是了~
el.on({
'click': function(ev) {
if ($(this).is('.sub')) {
//blablabla...
}
},
'mousemove': function(ev) {
if ($(this).is('.sub')) {
//blablabla...
}
}
});
处理函数如果可以合并就选择
$('#btn').on('event1 event2',function(){
//TODO...
})
否则
$("#btn").on("click", function(){
//TODO...
}).on("mouseover",function(){
//TODO...
});
看个人习惯,个人认为不用去纠结这些,怎么写好看 方便就行。
个人就看不惯这种:
$("#btn").on({
event1:...,
event2:...
});
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
采用jquery的链式结构,书写更加简洁
el.click(function(){
}).mouseover(function(){
});