Php Jquery,将innerHTML添加到DIV中,并通过该innerHTML的ID访问元素?
脚本:Php Jquery,将innerHTML添加到DIV中,并通过该innerHTML的ID访问元素?,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,脚本: $(document).ready(function(){ $.ajax({ type : "POST", url : "list_controller.php", data : "a=get&list_id=my_list", success : function(data){ $('#list_container').innerHTML = data;
$(document).ready(function(){
$.ajax({
type : "POST",
url : "list_controller.php",
data : "a=get&list_id=my_list",
success : function(data){
$('#list_container').innerHTML = data;
}
});
});
<div id="list_container"></div>
HTML:
$(document).ready(function(){
$.ajax({
type : "POST",
url : "list_controller.php",
data : "a=get&list_id=my_list",
success : function(data){
$('#list_container').innerHTML = data;
}
});
});
<div id="list_container"></div>
我希望这些链接能够调用其他AJAX函数,例如:
$(document).ready(function(){
$('#adminlink').click(function () {
var val = $(this).attr("value");
$.ajax({
type : "POST",
url : "list_controller.php",
data : val,
success : function(data){
$('#list_container').innerHTML = data;
}
});
});
return false;
});
问题是我无法访问触发单击功能的#adminlink
锚元素
其他一切都正常工作,但innerHTML动态
数据的任何元素都无法再访问。因为您正在覆盖#list_容器的内容
,因此注册处理程序的#adminlink
不再是页面上的内容
最简单的解决方案是事件委派,它依赖于事件冒泡:
$('#list_container').on('click', '#adminlink', function() {
...
});
i、 e.实际上是静态的#list_容器
元素接收了单击
事件,但是jQuery随后检查它是否是ID为adminlink
的元素,在调用所需的处理程序之前实际单击了该元素
在使用事件委派时,请始终尝试使用“最接近”的静态祖先元素。在这种情况下,这似乎是#list_容器
。在最坏的情况下,您最终会使用文档
,但事件必须在DOM中一路冒泡,然后才能进行处理。因为您正在覆盖#list_容器
的内容,所以您注册处理程序的#adminlink
不再是页面上的内容
最简单的解决方案是事件委派,它依赖于事件冒泡:
$('#list_container').on('click', '#adminlink', function() {
...
});
i、 e.实际上是静态的#list_容器
元素接收了单击
事件,但是jQuery随后检查它是否是ID为adminlink
的元素,在调用所需的处理程序之前实际单击了该元素
在使用事件委派时,请始终尝试使用“最接近”的静态祖先元素。在这种情况下,这似乎是#list_容器
。在最坏的情况下,您可能会使用文档
,但事件必须在DOM中一直冒泡,然后才能进行处理。$('body')。on(“click”、“#adminlink”、function(event){//dostuff})$('body')。在(“click”、“#adminlink”、函数(事件){//dostuff})上;通过您最近的编辑,现在我的答案看起来像一个完整的副本。你花了很长时间才使用了#列表容器
:)@Alexander oh yeah-我(老实说)没有注意到你用了#列表容器
而不是文档
。现在你最新的编辑让我的答案看起来像是完全重复的。使用#list_container
:)@Alexander oh yeah-我(老实说)没有注意到你使用了#list_container
而不是文档
。