2011-08-22 76 views
0

因此,這裏是我的HTML:多AJAX的onclick調用工作只在一個項目

<div class='delete-item' name='filetest' ></div> 
<div class='delete-item' name='anothertest' ></div> 
<div class='delete-item' name='coolfile' ></div> 

而且我的JavaScript

$(".delete-item").click(function() { 

    $.ajax({ 
     type: "GET", 
     url: "delete_item.php", 
     data: "name="+$(this).attr("name")+"&dir=<?php echo $encodedDirectory; ?>", 
     success: function(data) { 
      refreshItemList(); 
     } 
    }); 

}); 

因此,代碼工作,但只有一個項目。無論我點擊第一個作品和ajax調用是否成功完成。但是點擊另一個甚至不調用函數(我試圖通過它登錄到控制檯,它甚至沒有被記錄,除了第一項的東西)

回答

2

嘗試使用,而不是綁定jQuery.live:

$(".delete-item").live('click', function() { 

When you dojquery將一個事件附加到頁面上的所有.delete-item元素。但在refreshItemList();中,您將它們替換爲新的,並且沒有事件處理程序附加到新的。

jQuery.live()在您調用它時匹配.delete-item的所有元素上附加事件,並且在調用它之後創建.delete-item

+0

謝謝!完美的作品,現在我明白了這個問題。當我調用refreshItemList()時,它正在重新加載刪除按鈕所在的列表。 – Chaim

相關問題