我有一个页面可以动态加载内容。根据用户单击的菜单项,使用jquery动态加载和显示不同的表。

每个表的一列具有更新链接,该更新链接用于更新特定行表示的内容。单击该链接时,将显示JQuery UI Modal对话框,其中包含从服务器加载的表单,用户应在其中更新内容并回发。

这就是我的理解方式,如果我写错了,请纠正我。我需要在加载动态内容的同时加载jquery脚本,以便在javascript函数和正在加载的元素之间绑定(bind)事件。

假设我的假设是正确的,那么每次用户选择不同的表时,我都会加载内容和相同的JQuery UI对话框脚本。我从与主索引文件一起加载的不同javascript函数加载内容和jquery文件。

结果是不可预测的行为(使用相同的用例可能是可预测的)。作为一个示例,当不止一次加载表并进行更新以显示模式对话框时,第一次或第二次使用后不再显示该对话框。

可能会多次加载jquery脚本吗?如果是的话,这种应用程序应使用的原理或模式是什么。如果以上所有都是错误的假设,那么设计这种解决方案的原理或模式是什么?在不同位置(不同的动态索引都在同一个索引文件中)加载不同种类的动态内容,并且都需要相同的jquery文件。

最佳答案

如果我对您的理解正确,那么您正在询问如何在动态生成的内容上绑定(bind)事件。实际上,您不必与新内容同时加载新脚本即可将事件挂接到所述内容。

您想要的是jQuery 'live'处理程序。您可以使用标准jQuery选择器指定绑定(bind)的目标。但是,代替以下语法:

$('.foo').click(function(){ });

你会用
$('.foo').live('click', (function(){ });

它的工作方式是通过事件冒泡,其中在子元素(例如输入框)上调用的事件在所有父节点中“冒泡”。在这种情况下,jQuery仅监视整个文档中是否存在事件冒泡,然后将其与您的特定选择器条件进行匹配。

10-05 21:01
查看更多