2009-12-04 60 views
0

這裏是這種情況。使用jQuery AJAX調用我添加了一個新的鏈接<一個ID =「new_link>在jQuery上添加了後來添加的DOM上使用jquery?

,我想的是新增的鏈路上使用jquery:

$(document).ready(function(){ 

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

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

    ..... (and so on) 

但它不容許我,因爲加入這個鏈接已經產生的DOM後,我可以操控所有其他的聯繫,但不是新增加了一個。我怎樣才能解決這個問題?

回答

1

您的function(data)處理程序在ajax請求完成時調用(所有數據均存在)。與此同時腳本的執行仍在繼續。這意味着您的$("#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"); 
    }); 
    }); 
}); 
1

這個問題是問隔日男孩,有我從中

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

使用.live()功能(doc here)綁定到現有的和新創建的元素:

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

我能問你,你怎麼能快速回答這個問題?你訂閱新的主題?或者你只是點擊這個步伐,但意外? – 2009-12-04 20:31:02

+0

哈哈,我在jQuery標記的部分,我碰巧刷新,看到了新的問題,並立即知道答案。我在工作中休息一下:-D – 2009-12-04 20:34:14

+0

好吧我c =)是否可以在您的favurite標籤中訂閱新消息?我還沒有帳戶。 – 2009-12-04 20:35:44