Javascript 在PJAX页面加载后,即使不触发锚定单击
我有一个非常奇怪的问题,我正在混乱的网站,我不能把我的头围绕什么可能会出错。我在网站上使用PJAX,我的正文中有一个id为Javascript 在PJAX页面加载后,即使不触发锚定单击,javascript,web,pjax,Javascript,Web,Pjax,我有一个非常奇怪的问题,我正在混乱的网站,我不能把我的头围绕什么可能会出错。我在网站上使用PJAX,我的正文中有一个id为#page contents的div 我用来设置PJAX的代码如下 <script type="text/javascript"> $(function(){ $(document).pjax('a', '#page-contents', { fragment: '#page-contents',
#page contents
的div
我用来设置PJAX的代码如下
<script type="text/javascript">
$(function(){
$(document).pjax('a', '#page-contents', {
fragment: '#page-contents',
timeout: 2000
});
});
</script>
这适用于导航栏中的所有链接,但我发现#page contents
div中的任何链接都不会触发上述脚本。我知道,随着页面的更改和我插入的警报的显示,PJAX仍在工作
我在自己的测试中发现了一些东西:
- 我还发现,如果我直接加载一个包含非导航栏链接的地址,然后单击该链接,它就会工作。但是通过pjax重新加载返回该页面,然后单击链接不会触发我的事件
- 将一个测试类添加到我的一个锚点,然后将某个事件与该类关联,也会遇到同样的问题
$(document).on('pjax:complete', function() {
$.ajaxSetup({ cache: true});
$.getScript("YOUR SCRIPT FILE PATH HERE', true);?>");
});
您必须为任何其他javascript/jQuery添加更多的$.getScript
调用,以便启用要发生的事件。(示例:您可能需要重新加载jQuery)
这将把jquery和javascript重新应用于通过PJAX加载的新元素
*需要注意的一点是:如果您正在使用twitter引导,请不要使用$.getScript
重新调用引导脚本,因为它会在每次重新加载时自动取消
$(document).on('pjax:complete', function() {
$.ajaxSetup({ cache: true});
$.getScript("YOUR SCRIPT FILE PATH HERE', true);?>");
});