使用pjax时在哪里放置页面初始化javascript?

lar*_*hao 17 javascript pjax

大多数时候,我会$(document).ready在页面上放一些javascript代码来做一些初始化的事情,比如事件绑定等.

但现在我想对我的一些页面使用pjax https://github.com/defunkt/jquery-pjax.

使用pjax,因为只有页面的一部分被刷新,所以$(document).ready不会再被调用.

我可以手动触发事件的初始化脚本pjax:end,但我也想知道是否有更好的解决方案.

谢谢.

Adr*_*eil 57

您可以轻松地将所有现有代码链接到document.ready和pjax:success事件,如下所示:

之前:

$(document).ready(function() {
    // page load stuff
});
Run Code Online (Sandbox Code Playgroud)

后:

$(document).on('ready pjax:success', function() {
    // will fire on initial page load, and subsequent PJAX page loads
});
Run Code Online (Sandbox Code Playgroud)

  • 如果每个页面的初始化代码不同,我该怎么办? (6认同)

Car*_*arl 0

我认为你最好的选择可能就是按照你所说的去做,并将页面特定的初始化代码挂接到“pjax:end”事件。这样,它基本上会执行与之前相同的工作,并针对已加载到 DOM 中的任何 html 运行。