jquery - (delegate的使用)

以前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("<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标签是新插入进来的。
        }
    })
})

嗯,终于从坑里出来了。可怕~

posted @ 2018-04-13 16:29  Lafitewu  阅读(204)  评论(0编辑  收藏  举报