从执行AJAX

时间:2016-10-06 03:09:48

标签: javascript jquery ajax anchor

我有一个正在开发的网站,通过AJAX加载新页面而不是传统的页面加载。网站上的大多数链接都将使用AJAX加载新页面,但是我需要从这种行为中排除一些链接。例如,本地哈希链接只是将您向下滚动到同一页面上的锚点。或者,链接到本地​​托管但显然不能通过AJAX加载的PDF文件。我对HTML有足够的控制权,我可以简单地将类添加到我想要排除的链接中,例如.local-anchor或.pdf。如果您是第一次直接加载页面,我有效地排除了这些链接的代码,但是无论何时通过AJAX加载页面,我的排除都不再有效。 .local-anchor链接和应该被排除的任何其他链接仍然以某种方式执行AJAX函数。相关JS代码的示例:

$(document).on("click", "a:not('.local-anchor, .pdf')", function(e) {
    var href = $(this).attr("href");

    // check that it points to this domain
    if ( href.indexOf(document.domain) > -1 || href.indexOf(':') === -1 ) {
      history.pushState({}, '', href);
      loadPage(href);
      e.stopPropagation(); 
      e.preventDefault();
    } 
  });

您可以在此处查看此实时页面(正在开发中): http://dma.nz/practice/

链接:

我们的设计方法
建筑过程
奖项+出版物
接触

将您滚动到同一页面下方的锚点,应将其排除在外。然而,如果这个页面是通过AJAX加载的(通过导航到右上角的其他主要导航链接之一进行测试然后返回实践),那么这些链接会触发AJAX重新加载同一个页面,这会搞砸了。

我如何修改此JS以确保它们始终被排除?

0 个答案:

没有答案