给.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动态绑定事件,才可以。
给心灵一个纯净空间,让思想,情感,飞扬!