我在处理一个网站时遇到了一个相当奇怪的问题,我无法理解可能出了什么问题。我在网站上使用PJAX,并且在我的body中有一个id为
我用以下代码设置PJAX...
我知道设置是正确的,因为我编辑了PJAX文件,每当它交换我的
我有一个顶部导航栏(一个Bootstrap导航栏),最初我一直在努力跟踪哪个导航栏项目将被标记为活动状态。我使用以下JavaScript代码解决了这个问题。
这对于导航栏中所有链接都有效,但我发现任何位于
我在自己的测试中发现了一些事情:
提前感谢您!
#page-contents
的div。我用以下代码设置PJAX...
<script type="text/javascript">
$(function(){
$(document).pjax('a', '#page-contents', {
fragment: '#page-contents',
timeout: 2000
});
});
</script>
我知道设置是正确的,因为我编辑了PJAX文件,每当它交换我的
#page-contents
div的内容时,就会触发警报,当我期望它(即在链接单击时)看到该警报。我有一个顶部导航栏(一个Bootstrap导航栏),最初我一直在努力跟踪哪个导航栏项目将被标记为活动状态。我使用以下JavaScript代码解决了这个问题。
<script type="text/javascript">
$("a").click(function() {
$(".navbar-nav li").removeClass("active");
var nextPage = $(this).attr("href");
nextPage = nextPage.substring(nextPage.indexOf(window.location.hostname) + window.location.hostname.length);
switch(true) {
case nextPage == "/about":
$("#about-nav").addClass("active");
break;
case nextPage == "/contact":
$("#contact-nav").addClass("active");
break;
case nextPage == "/resume":
$("#resume-nav").addClass("active");
break;
case nextPage.indexOf("/projects") != -1:
$("#projects-nav").addClass("active");
break;
default:
break;
}
});
</script>
这对于导航栏中所有链接都有效,但我发现任何位于
#page-contents
div内的链接都无法触发上述脚本。我知道PJAX仍在工作,因为页面会改变并且我插入的警报也会显示。我在自己的测试中发现了一些事情:
- 我还发现,如果直接加载包含非导航栏链接的地址,然后单击该链接,它将起作用。但是通过pjax重新加载该页面,然后单击该链接将不会触发我的事件。
- 将测试类添加到我的锚点之一,然后将某些事件与该类关联具有相同的问题。
提前感谢您!
P.S.:所涉及的网站是我正在开发的个人网站,链接为http://rosshays.me,我最先在我的关于页面上发现了这个问题。(正如你显然看到的那样,该网站仍在建设中。)如前所述,直接访问关于页面并单击链接将起作用,但如果您导航到关于页面,然后尝试单击页面中的链接,它将无法工作。