给.load()加载进来的节点,添加事件的方法

$(".boxOut").load("../dialog/share.html?n="+Math.random()+" .box");     //通过.load加载页面里的.box里的内容。。并使用动态加载地址,以防止浏览器缓存问题。

方法一:
$(".boxOut").delegate(".box","click", function() {     //delegate给后加的节点绑定事件
                 $(".share").fadeOut(200);
                $(".share").empty();
     });

注释:delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
    使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。


方法二:
$(document).on("click", ".box", function() { //给后加的节点绑定事件 alert(111111) });

 

当给.load()加载进来的节点,添加事件的时候,直接用

$(".box").click(function(){
       alert(111)
    });

是没有效果的。因为这种方式绑定的事件,是在当前页面加载完成后绑定的,后面新加载进来的节点,无法绑定事件。

只有通过on动态绑定事件,才可以。

 

posted @ 2015-03-19 17:03  Shimily  阅读(623)  评论(0)    收藏  举报