这样一个需求,如果用 live() 方法实现的话 非常简单,容易理解。

1
2
3
$('nav li, #sb-nav li, #help li').live('click', function () {
// code...
});

jquery在1.7版本后,建议大家用on方法代替之前的bind、live、delegate方法。

那上面一句如果用on的话,怎么写呢?

其实查看live源码就知道,live实际是委托doucment进行事件委派的。

按照这个思路,可以将on方法绑定到document即可。

1
2
3
$(document).on('click', '#header .fixed-feedback-bn, #sb-sec .feedback-bn', function () {
// code...
});

还有一种情况,on() 方法绑定多个事件,可以这样写:

1
2
3
4
5
6
7
8
9
10
11
$("table.planning_grid").on({
mouseenter: function() {
// Handle mouseenter...
},
mouseleave: function() {
// Handle mouseleave...
},
click: function() {
// Handle click...
}
}, "td");

最后,用 on() 方法绑定多个选择器,多个事件则可以这样写:

1
2
3
4
5
6
7
8
9
10
11
$(document).on({
mouseenter: function() {
// Handle mouseenter...
},
mouseleave: function() {
// Handle mouseleave...
},
click: function() {
// Handle click...
}
}, '#header .fixed-feedback-bn, #sb-sec .feedback-bn');