代码之家  ›  专栏  ›  技术社区  ›  Matt Robertson

Ajax加载带有内容的javascript和css

  •  0
  • Matt Robertson  · 技术社区  · 12 年前

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

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

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

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

    例如,如果我加载 page1.html &关联文件(包括UI的jQuery函数),一切都很好。但是,如果我加载 page2.html 然后回到 页面1.html ,文件加载,但jQuery函数没有响应。

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

    1 回复  |  直到 12 年前
        1
  •  1
  •   jfriend00    12 年前

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

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