JQuery - 附加链接不起作用

时间:2009-10-26 14:51:24

标签: javascript jquery ajax event-handling linker

我使用Jquery 1.3和PHP创建了一个动态列表选择器脚本,它发送一个JSON AJAX请求并返回一个可供选择的项目列表。 AJAX调用完美地返回一个项目数组,我使用Jquery将它们作为无序列表附加到空容器DIV。该过程的这一部分按预期工作。

问题来自这样一个事实,即从项目列表中,我将它们绘制为点击由rel属性处理的链接。这是一个例子:

<a rel="itemPick" id="5|2" href="#">This is the link</a>

JQUERY处理程序如下所示:

$('a[rel=itemPick]').click(function () { code here... });

这些链接和点击处理程序在页面加载时工作正常,但当它们被附加到容器DIV时,点击事件不会被拾取。我不想再次刷新整个HTML页面,除了append()之外我还需要做些什么来让JQUERY识别新添加的链接?

3 个答案:

答案 0 :(得分:4)

当您使用jQuery.click方法时,它正在查找页面上当前存在的所有“a”元素。然后,当您添加新的“a”元素时,它不知道该单击事件处理程序。

因此,jQuery中有一个新的事件模型,它允许您将函数绑定到名为Live Events的所有当前和未来元素。您可以像使用普通事件绑定一样使用Live Events,但它们适用于指定的所有未来元素。因此,您只需将绑定逻辑切换为:

$('a[rel=itemPick]').live('click', function () {
    //code here...
})

答案 1 :(得分:1)

$('a[rel=itemPick]').live("click", function (){ code here... });

答案 2 :(得分:0)

添加链接后绑定事件吗?