0

我正在使用 jquery ajax 将内容从一个页面加载到当前页面的 div 中,类似于 gmail 在收件箱、垃圾箱等之间切换的方式。我使用的是 jQuery 的加载方法

$("#divGlobal").load("newPage.html #container");

将我需要的内容加载到我的 div 中。

newpage.html #container也有与之关联的相关 javascript & css 文件。现在我通过附加必要的<script><link>标签来加载它们,<head>但它并不总是有效。文件总是加载(我在 Firefox 中观看 XHR 信息),但似乎并不总是正常工作。

例如,如果我加载page1.html和关联文件(包括 UI 的 jQuery 函数),一切正常。但是,如果我然后加载page2.html并返回page1.html,文件加载但 jQuery 函数没有响应。

有没有更好的方法来加载与我正在加载的内容相关的 javascript 和 css 文件?

4

1 回答 1

1

重新加载您之前加载的相同 javascript 可能无法达到您想要的效果,因为所有变量和函数已经从之前的加载中定义,并且某些状态可能已经在之前的加载中到位。将其再次加载到同一页面不会从头开始,这可能是您想要的。

如果您控制正在加载的页面,那么您可以通过专门设计的内容加载中的脚本来编写 javascript,以便它们准确地设置您想要的状态并清理任何以前加载的内容状态,但是您必须以这种方式编写它们才能以这种方式工作。这将包括重置脚本的第一次调用可能已修改的任何 DOM 修改、事件处理程序、全局变量等。

于 2012-08-04T00:09:39.983 回答