我有wordpress网站,我第一次使用pjax。我希望能够更新#main容器,以及主容器之外的div,我将其用于拉伸的背景滑块。
背景滑块编写html,以及指定滑块设置的脚本标记。我能够通过使用innerHTML(我选择而不是jquery的html()来保留脚本)将滑块的html移动到#main容器之外的适当位置。那时我注意到脚本标签似乎根本没有在pjax请求中返回。
是否有任何可用于保留脚本标记的工作,或以某种方式在调用中检索它?加载pjax后我是否需要单独的ajax调用才能获取脚本标记信息?
谢谢!
答案 0 :(得分:1)
这是一个很好的问题,也让我头疼了一段时间。
不幸的是,PJAX不会导致页面重新分析或重新编译JavaScript,尽管它会遍历新的DOM并注册新的事件处理程序。
这意味着如果您在使用PJAX加载的内容中进行JavaScript调用,则需要将它们调用的函数加载到原始文档中。
因此,您可以使用onClick加载图像,例如在灯箱中弹出更大的版本,但前提是您在加载原始页面时加载灯箱JavaScript函数。
很简单的例子:
在原始HTML页面中:
<script type="text/javascript" src="lightbox.js" />
在PJAX加载的内容中:
<img src="small-image.jpg" onClick="javascript:show_lightbox('big0image.jpg');" />
但是如果您在原始页面中没有脚本元素并尝试使用PJAX加载它,它将无法工作。