jQuery在元素创建之前绑定事件

jQuery可以实现在元素创建之前就监听该元素,这对于动态创建元素后绑定事件非常有用

问题

  1. 对于存在动态添加的元素,则需要动态绑定事件,而为了不导致因为给新元素绑定事件,导致旧元素出现重复绑定的情况。
  2. 一般的解决办法是先解绑再绑定
1
2
3
4
5
6
7
8
9
10
11
12
function showTip() {
	alert(1);
);

// 第一次绑定
$("#element").find("li").click(showTip);

// 由于新增了相同元素,则需要为旧元素解绑事件
$("element").find("li").unbind("click");

// 再重新为当前所有元素绑定
$("#element").find("li").click(showTip);

解决

  1. jQuery 拥有先进的事件处理机制,因为 jQuery.on() 方法可以传递一个元素的子元素选择器作为参数,则可以监听目前还不存在的事件
1
2
3
$("#element").on("click", "li", function () {
	alert(1);
});