PJAX成功后执行特定于页面的javascript代码

时间:2014-07-24 07:19:16

标签: javascript jquery html dom pjax

这是我的难题:

我的网站使用PJAX将HTML加载到' #main'每页的容器。

每个页面都有自己的特定javascript文件。例如:' dashboard.index.js',' inbox.index.js'等等。 注意:所有库都是通过PreloadJS在页面的第一次加载时预加载的,以避免javascript编译开销。

页面的第一次加载是完美的,不用担心,因为它是正常的HTML加载。

但是,如果我再次回到此页面,PJAX将不会重新加载javascript文件,因为它已经在DOM中。

到目前为止我尝试了什么没有完美地工作:

  1. 将javascript文件放在' main'的底部。容器。 PJAX将其转移到' HEAD'这个DOM并没有第二次加载它。
  2. 将内嵌脚本放在' main'容器来执行每个页面的功能。由于在加载JS库之前执行代码,因此失败。
  3. Bind' PJAX成功'事件和执行功能。无法根据当前加载的页面确定要执行的功能。
  4. 因此,我的问题是:

    是否有任何加载与每个页面关联的特定javascript文件的策略?

1 个答案:

答案 0 :(得分:1)

从pjax加载HTML时,我在div中添加了一个'data-js'属性,其中包含成功加载HTML时要调用的函数的名称。

然后只是使用'pjax:success'事件来调用函数。