bind:
1.兼容性较好;
2.绑定事件到所有选中的元素上;
3.不能绑定事件到动态添加的元素上;
4.效率较低,尤其是嵌套关系较深的元素
$("li").bind("click", function (event) {
alert("hello");
});
live:
1.把所有的事件都绑定到jQuery对象$(document)上;
2.事件只绑定一次,不需要绑定到筛选出来的元素上;
3.可以绑定事件到动态添加的元素上;
4.不能使用stopPropagation来阻止事件的冒泡
$("li").live("click", function (event) {
alert("hello");
});
delegate:
1.将事件绑定到要添加事件元素的父元素身上,比live更加灵活;
2.绑定的父元素可以采用就近原则,比lve的效率高
3.也可以用在动态添加的元素上
$("#ul").delegate("li", "click", function (event) {
alert("hello");
});
On:
是jQuery1.7中新增的,前面的三种方法都是依赖on方法来实现的。,主要特点:
1.事件的添加和卸载都要是通过on来实现的,提供一种统一的事件处理方法。
2.增加了使用的难度,对于不熟悉on的使用的,很有可能误用,导致性能下降。
经验:on方法的正确使用
1.使用on方法,如果第二个参数使用null,则作用与bind( )相同;
2.如果第二个参数适用了选择器,就要看调用对象
i.如果调用对象是$(document),则作用与live( )相同
ii.否则与delegate()相同