使用jQuery和AJAX重新绑定动态内容的功能

时间:2009-02-03 11:29:53

标签: ajax asynchronous jquery

我正在为网站构建后端管理面板,我遇到了jQuery的问题,而AJAX代码则用于构建网页。

在加载时,我将操作绑定到某些表字段,允许用户添加或删除颜色或大小。当他们提交表单时,我清空表并使用AJAX生成一个新表,然后将新表放入表单中。

不幸的是,新形式不是(正如我所料)受$(document).ready函数的影响。我想知道是否有一种方法可以重新调用document.ready函数将操作绑定到页面中的新元素,或者调用jQuery函数而不通过document.ready函数。

我可以在vanilla javascript中重写jQuery函数并以这种方式调用它,但我更愿意尽可能重用jQuery代码。

我发现了一些关于如何使用ASP.NET和UpdatePanels做的事情,但是这个站点是用PHP编写的,它使用基本的AJAX查询插入到数据库中,重新获取结果然后构建结果表。

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

您是否尝试过使用live events?这仅适用于1.3。

对于以前的版本,您可以使用live query插件。使用此方法,您可以运行匹配和不匹配侦听器(在匹配发生时运行代码)。您还可以使用livequery.run方法强制评估绑定。

更新

对于现在发现这一点的任何人来说,live方法从1.7开始已被弃用。 Live有一些主要的唠叨问题,因此被更强大的功能取代:on。即使你不在1.7,你也应该高度考虑至少使用delegate(jquery 1.4.2),因为现场有一些严格的限制

答案 1 :(得分:1)

直播活动似乎是最好的答案;但如果没有,你应该简化$(document).ready()函数,使其调用初始化函数。稍后,在加载您的AJAX内容后,您只需再次调用它。