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
而不是
文档