在jquery之后添加的DOM上使用jquery?

时间:2009-12-04 20:26:54

标签: jquery ajax dom

就是这样。使用jquery ajax调用我添加了一个新链接<一个id =“new_link>

我想在新添加的链接上使用jquery:

    $(document).ready(function(){

    $.post("static/js/jquery_call.php", function(data){
        $("#div_id").html(data);
    });

    $("#new_link").click(function(){

    ..... (and so on)

但它不允许我,因为在生成DOM之后添加了此链接。我可以操纵所有其他链接,但不能操纵新添加的链接。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

每隔一天就会提出这个问题。男孩,我从中挤出来了吗?

$("#new_link").live('click',function(){});

答案 1 :(得分:1)

当ajax请求完成(所有数据都存在)时,将调用您的function(data)处理程序。同时继续执行脚本。这意味着您的$("#new_link")...代码最有可能在数据添加到dom之前执行 使用live handler或至少在函数(data){}处理程序中移动$(“#new_link”)代码。

编辑:示例代码

$(document).ready( function(){
  $.post("static/js/jquery_call.php", function(data){
    $("#div_id").html(data).find("#new_link").click( function() {
      alert("Test");
    });
  });
});

答案 2 :(得分:0)

使用.live()函数(doc here)绑定到现有和新创建的元素:

$("#new_link").live("click", function(){
  // your code here
}