以前jq绑定点击事件,是不是都是$("xxxx").click(function(){})
嗯,人都是这样,不碰到坑,是不知悔改的。
讲讲为什么要用delegate绑定事件。
举个例子:我在class为demo的标签内的a 标签加了个点击事件,而点击事件里面执行的是把demo标签内,所有内容替换,同时也会重新插入a标签。
比如:
$(".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(""); // 替换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标签是新插入进来的。 } })})
嗯,终于从坑里出来了。可怕~