起因:以前jq绑定点击事件,是不是都是$(“xxxx”).click(function(){})。嗯,人都是这样,不碰到坑,是不知悔改的。
所以:这就是为什么要用delegate绑定事件。
举个例子:我在class为demo的标签内的a 标签加了个点击事件,而点击事件里面执行的是把demo标签内,所有内容替换,同时也会重新插入a标签。
example:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16$(".app_infro_con").delegate("a","click",function() {
//给class名为app_infro_con内的a 标签一个点击事件
$.ajax({
type:"get",
url: Url,
dataType:"jsonp",
async: true,
beforeSend:function(XMLHttpRequest){
$(".app_infro_con").html("img style='width: 100%;' src='./images/loading.gif'"/);// app_infro_con内的内容,这时app_infro_con里面已经没有a标签了
},
success:function(res){
var infro = res.data.notice
$(".app_infro_con").html(infro); // 这里的infro 是我外部定义的一个内容,里面是有a标签的,但是 如果用直接click去绑定,你会发现click只会触发一次,这是因为这里的a标签是新插入进来的。
}
})
})
嗯,终于从坑里出来了。可怕~