您的位置:首页 > Web前端 > JQuery

jQuery如何控制未来的元素(动态生成的节点)

2014-03-21 16:31 281 查看
$("div").click(function(){
$("body").append('<div id="div" style="width:400px; height:400px; background:#000"></div>');
});
$("#div").click(function(){
$(this).hide();
});

里面的#div是div点击动态生成的,属于未来的元素,这样写,JS代码在加载的时候$("#div")部分的代码识别不到,所以作废了;

解决方式请看下面

$("body").delegate("div", "click", function(){
$("body").append('<div id="div" style="width:400px; height:400px; background:#000"></div>');
$("#div").click(function(){
$(this).remove();
});
});

使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

PS还可以用on()方法

 on('event','元素',function(){})

关键词:delegate(),on(),事件冒泡,其实就是在window上加一个事件,再判断是不是这个元素
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: