2011-08-22 75 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

相关问题