JavaScript/JQuery不能工作,直到页面重新加载

JavaScript/JQuery不能工作,直到页面重新加载

问题描述:

此代码在我的所有网页的标题上列出。当我点击我网站上的链接时,我无法使用页面上的按钮,直到我刷新。我怎样才能解决这个问题?JavaScript/JQuery不能工作,直到页面重新加载

<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.faqElement').click(function() { 
      var faqElement = $(this); 
      var question = faqElement.find('.faqQuestion'); 
      var answer = faqElement.find('.faqAnswer'); 
      if (!answer.hasClass('activeFaqAnswer')) { 
       $('.faqElement').removeClass('flipButton'); 
       faqElement.addClass('flipButton'); 
       $('.activeFaqAnswer').css('max-height', ''); 
       $('.faqAnswer').removeClass('activeFaqAnswer'); 
       answer.css('max-height', 'none'); 
       answer.css('max-height', answer.height()); 
       answer.addClass('activeFaqAnswer'); 
      } 
     }); 
     }); 
    </script> 
+2

你能分享一些更多的代码吗?你指的是哪些按钮?按钮上有哪些类?控制台中是否有任何javascript错误记录? – san

+0

如果你把它放在你的代码的末尾(而不仅仅是头部的末尾)会发生什么? –

这听起来像是你的自定义脚本和Squarespace's AJAX loading冲突:

偶尔,阿贾克斯可以嵌入自定义代码或锚 链接冲突。 Ajax也会干扰网站分析,仅在第一页上记录点击量。

因此,根据您的模板,您可能会发现禁用AJAX是一种简单的解决方案:

您可以在样式编辑器禁用阿贾克斯,但有一些例外:

  • 阿贾克斯不能在Skye,Foundry或Tudor停用。
  • 无法在Farro和Haute的博客着陆页上禁用Ajax。如果您在这些模板中取消选中启用Ajax加载,那么它们仍会使用Ajax加载博客页面。

要启用或禁用的Ajax:

  • 在主菜单中,单击设计,然后单击样式编辑器。
  • 向下滚动到网站:正在加载。
  • 选中或取消选中启用Ajax加载。

如果你不想完全禁用AJAX,然后插入类似下面via Header code injection是经常去(在较新的模板,如卤水/赖特家族)的方式:

<script> 
    (function() { 
     // Establish a function that does something. 
     var myCustomFunction = function() { 
      // Do stuff here. 
     }; 

     // Initialize the fn on site first-load. 
     document.addEventListener("DOMContentLoaded", myCustomFunction); 

     // Reinit. the fn on each new AJAX-loaded page. 
     window.addEventListener("mercury:load", myCustomFunction); 
    })(); 
</script> 

如果这不起作用,那么你必须在body元素上设置一个突变观察者来观察属性的变化,特别是id。在撰写本文时,York/Doncab系列模板需要采用这种方法。

注意,对于一些网页,如/cart/页面,这种方法可能无法按预期执行,创造要么setInterval,​​或前面提到的突变观测方法的额外需求。