我用Ajax得到了动态内容,我将它放在div中,但问题是我对某些子div(来自动态内容)有不同的id . 所以我为这些div添加了选择器,但正如我所说它们是动态加载的,这意味着它们在加载(从另一个文件)并插入div之前在任何地方都不可见 . 插入动态内容时出现问题 . jQuery无法选择这些div :(对我的问题有什么可能的解决方案吗?
嗯,也许我的解释并不好,所以我会用代码说话:D
示例:这是空div <div id="div"></div>
这是jQuery代码
$(document).ready(function(){
$.get("file.php", function(data){
$("#div").html(data);
$("#somediiv").click(function(){
alert("Yeah");
});
$("#somediv").click(function(){
$.get("otherfile.php", function(data){
$("#div").html(data);
});
});
$("#somediv2").click(function(){
$.get("file.php", function(data){
$("#div").html(data);
});
});
});
});
一切都有效,直到新内容出现 . 在加载“file.php”的新内容中,有一个id为“somediiv”的div,当我点击它时,“otherfile.php”将被加载,并且在这个div的内容中还有另一个div id“somediiv”,但是当jQuery无法捕获点击时:(
2 回答
我想你必须使用live() . 或者在
$.get()
的回调中附加事件 .您希望每个动态加载的div还包含原始div的单击功能吗? powtac是对的,现场活动将帮助你 . 就像是:
这是假设您要将数据附加到您单击的div,这是没有真正指定的 . 此外,您必须确保返回的数据包含类“someDivClass”的div .
实时事件注册任何匹配的选择器以及所有未来的匹配(比如动态添加)