我使用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识别新添加的链接?
答案 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)
添加链接后绑定事件吗?