Javascript jquerylive能解决这个问题吗?表链接被绑定为单击,ajax刷新行会破坏一切

Javascript jquerylive能解决这个问题吗?表链接被绑定为单击,ajax刷新行会破坏一切,javascript,jquery,Javascript,Jquery,我有一个表,我使用jquery循环并修改每个链接的href 如果有人在表格中翻页,链接将使用ajax刷新(页面不会重新加载) 现在,由于表已刷新,我的所有链接都未修改 分页通过下拉列表完成 jquery live能否以某种方式帮助我重新应用对URL的修改,就像我在页面最初加载时所做的那样 $("#someTableID").each(function () { // modify href of links in each row, append ?user=342 to it.

我有一个表,我使用jquery循环并修改每个链接的href

如果有人在表格中翻页,链接将使用ajax刷新(页面不会重新加载)

现在,由于表已刷新,我的所有链接都未修改

分页通过下拉列表完成

jquery live能否以某种方式帮助我重新应用对URL的修改,就像我在页面最初加载时所做的那样

 $("#someTableID").each(function () {

   // modify href of links in each row, append ?user=342 to it.

 }
不,
.live()
帮不了你。
.live()
.delegate()
所做的一切就是帮助处理内容发生变化的事件。它不能自动为您解决问题。执行ajax重新加载的代码必须对重新加载的内容应用所有转换。

不,
.live()
帮不了你。
.live()
.delegate()
所做的一切就是帮助处理内容发生变化的事件。它不能自动为您解决问题。执行ajax重新加载的代码必须对重新加载的内容应用所有转换。

尝试以下操作:

 $("#someTableID > tr").each(function () {
   var $link  = $(this).find('a');
   $link.attr('href', $link.attr('href') + '?user=342');
 }
试试这个:

 $("#someTableID > tr").each(function () {
   var $link  = $(this).find('a');
   $link.attr('href', $link.attr('href') + '?user=342');
 }

实际上,您并不是将事件连接到每个链接,而是修改每个链接的文本,对吗?那么不,jquery.live()是不正确的工具;这是一种监视页面上用户事件的方法。您只是试图装饰现有的文本

您需要将回调连接到ajax处理程序,以便在ajax处理程序接收到页面的新内容后对其进行修饰

您甚至可能希望在收到新内容后,但在将其放入页面之前,挂接回调,以确保在链接存在但未添加额外内容的情况下不存在竞争条件


我怀疑你在用load。查看jquery.ajax.load()源代码,看看如何使用jquery.ajax()将其替换为更健壮的回调处理程序。

您实际上并没有将事件连接到每个链接,只是修改每个链接的文本,对吗?那么不,jquery.live()是不正确的工具;这是一种监视页面上用户事件的方法。您只是试图装饰现有的文本

您需要将回调连接到ajax处理程序,以便在ajax处理程序接收到页面的新内容后对其进行修饰

您甚至可能希望在收到新内容后,但在将其放入页面之前,挂接回调,以确保在链接存在但未添加额外内容的情况下不存在竞争条件


我怀疑你在用load。查看jquery.ajax.load()源代码,看看如何使用jquery.ajax()将其替换为更健壮的回调处理程序。

有几种方法可以实现这一点。你可以选择以下任何一个方向,但你唯一的限制是你的创造力:

第一个选项是委托分页事件触发循环,如上所述。加载完内容后,您可以通过链接循环,分别修改每个链接

或者,您可以将查询字符串修改作为数据存储在链接标记本身中:

<a href="" class="{ myData : { user : 342 } }">some link.</a>
对于选项2,我使用了几个插件,但这些插件不是这个想法所必需的。使用的插件是和。元数据内置于jQuery的边缘版本中,并应在下一版本(目前为1.4rc1)发布时立即包含在$.data()中。与元数据相反,自定义属性也适用于此场景

字符串附加也是一个选项,我只是jquery bbq项目的粉丝,因为它在url操作方面提供了很多功能


我提供了一个JSFIDLE示例。

有几种方法可以实现这一点。你可以选择以下任何一个方向,但你唯一的限制是你的创造力:

第一个选项是委托分页事件触发循环,如上所述。加载完内容后,您可以通过链接循环,分别修改每个链接

或者,您可以将查询字符串修改作为数据存储在链接标记本身中:

<a href="" class="{ myData : { user : 342 } }">some link.</a>
对于选项2,我使用了几个插件,但这些插件不是这个想法所必需的。使用的插件是和。元数据内置于jQuery的边缘版本中,并应在下一版本(目前为1.4rc1)发布时立即包含在$.data()中。与元数据相反,自定义属性也适用于此场景

字符串附加也是一个选项,我只是jquery bbq项目的粉丝,因为它在url操作方面提供了很多功能

我提供了一个JSFIDLE示例