Javascript JQuery-附加链接不起作用
我使用jQuery1.3和PHP创建了一个动态列表选择器脚本,它发送一个JSONAjax请求并返回一个可供选择的项目列表。AJAX调用可以完美地返回一个项目数组,我使用Jquery将这些项目作为无序列表附加到空容器DIV中。该过程的这一部分按预期工作 问题来自这样一个事实,即从项目列表中,我将它们绘制为链接,其单击由rel属性处理。下面是一个例子: JQUERY处理程序如下所示: $'a[rel=itemPick]'。单击函数{ 代码在这里。。。 };Javascript JQuery-附加链接不起作用,javascript,jquery,ajax,event-handling,linker,Javascript,Jquery,Ajax,Event Handling,Linker,我使用jQuery1.3和PHP创建了一个动态列表选择器脚本,它发送一个JSONAjax请求并返回一个可供选择的项目列表。AJAX调用可以完美地返回一个项目数组,我使用Jquery将这些项目作为无序列表附加到空容器DIV中。该过程的这一部分按预期工作 问题来自这样一个事实,即从项目列表中,我将它们绘制为链接,其单击由rel属性处理。下面是一个例子: JQUERY处理程序如下所示: $'a[rel=itemPick]'。单击函数{ 代码在这里。。。 }; 加载页面时,这些链接和单击处理程序可以正常
加载页面时,这些链接和单击处理程序可以正常工作,但当它们附加到容器DIV时,不会拾取单击事件。我不想再次刷新整个HTML页面,所以除了append之外,我还需要做什么才能让JQUERY识别新添加的链接?添加链接后是否绑定事件?添加链接后是否绑定事件?使用JQUERY.click方法时,它正在查找页面上当前存在的所有元素。然后,当您添加一个新的a元素时,它不知道该click事件处理程序
$('a[rel=itemPick]').live("click", function (){ code here... });
因此,jQuery中有一个新的事件模型,允许您将函数绑定到所有当前和未来的元素,这些元素称为。可以像使用普通事件绑定一样使用实时事件,但它们将适用于将来指定的所有元素。因此,您可以简单地将绑定逻辑切换到:
$('a[rel=itemPick]').live('click', function () {
//code here...
})
当您使用jQuery.click方法时,它将查找页面上当前存在的所有a元素。然后,当您添加一个新的a元素时,它不知道该click事件处理程序
因此,jQuery中有一个新的事件模型,允许您将函数绑定到所有当前和未来的元素,这些元素称为。可以像使用普通事件绑定一样使用实时事件,但它们将适用于将来指定的所有元素。因此,您可以简单地将绑定逻辑切换到:
$('a[rel=itemPick]').live('click', function () {
//code here...
})
完美的答案,只是提醒一下:live不能应用于那些事件:模糊、聚焦、鼠标移动、鼠标移动、更改、,submit@DaNieL:对!但是,我听说他们正在为未来版本中的这些事件提供支持。@Edmassa:是的,但实际上唯一的方法是jquerylive插件完美的回答,只是提醒一下:live不能应用于这些事件:模糊、聚焦、mouseenter、mouseleave、更改,submit@DaNieL:对!但是,我听说他们正在为未来版本中的这些事件提供支持。@Edmassa:是的,但实际上唯一的方法是使用jquerylive插件