2011-08-14 104 views
0

我想用AJAX更新數據庫中的單個記錄。一切工作正常,但返回結果時,它看起來很好,但如果再次點擊a.update(對於返回的元素),我打開了href(所以第二次attr()不適用於某些原因)。我對jQuery和ajax非常陌生:)在jQuery中使用AJAX加載鏈接後獲取href值

// Update Single Item 
$('li a.update').click(function() { 
updateURL = $(this).attr("href"); 
$(this).attr("href", "#"); 
theContainer = $(this).parents('li'); 
    $.ajax({ 
    type: "GET", 
    dataType: 'json', 
    url: updateURL, 
     async: false, 
    success: function(data){ 
     theContainer.replaceWith(data.html).fadeIn(300); 
    } 

    }); 
    return false; 
    }); 

p.s. List元素是用PHP生成的。當我要求一個<li>元素,我使用完全相同的模板生成它(默認情況下,一切都印有一個foreach循環,之後AJAX請求取回JSON與<li>...</li>

+0

好像你正在替換html,所以處理程序在此之後就不見了。您可能想試試現場或其他方法。你能展示一個你想用html完成的小例子嗎? – Matt

回答

1

可以使用live方法來連接事件偵聽器,所有匹配的元素,無論他們是否已經在DOM與否:

$('li a.update').live("click", function() { 
    //Your code 
}); 

要附加的事件監聽器只會將其連接到DOM當前元素,如您要添加新的方式通過AJAX,他們沒有收到事件監聽器。

+0

謝謝。這正是我所需要的:) – Norris