链接在jQuery中失去了动作

时间:2011-12-15 21:30:29

标签: javascript jquery hyperlink shopping-cart

我正在使用jQuery(购物车,添加/删除项目)在div中创建和删除HTML。我需要访问此div中链接的.click()事件,但它仅在页面首次加载时有效 - 删除该链接后重新添加它不响应任何jQuery事件。

我尝试了$j(document).ready(function() {}内外的功能。重新创建后如何让事件再次在此链接上运行?

4 个答案:

答案 0 :(得分:2)

使用.delegate()代替.click()(这是.bind('click')的简称):

$(<root-element>).delegate('a', function () {...});
  

为所有匹配的元素附加处理程序到一个或多个事件   选择器,现在或将来,基于一组特定的根   元件。

来源:http://api.jquery.com/delegate/

<root-element>可以是document元素,或者如果您知道始终存在的元素是document元素的后代,则最好使用该元素。

答案 1 :(得分:1)

每次覆盖容器div的内容或使用live/delegate/on设置处理程序时,您需要重新附加事件,具体取决于您使用的jQuery版本。

第二种方法一般比较优雅,但也有缺点。特别是,即使连接到容器,也无法取消级联的默认操作。

答案 2 :(得分:1)

.click()事件仅适用于调用函数时出现的元素。您需要考虑使用.live().delegate()将侦听器附加到$(document).ready()

之后动态创建的元素

答案 3 :(得分:0)

尝试使用.detach()代替.remove(),这将保留事件。或者使用event delegation