2017-03-05 73 views
0

此代碼在我的所有網頁的標題上列出。當我點擊我網站上的鏈接時,我無法使用頁面上的按鈕,直到我刷新。我怎樣才能解決這個問題?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

如果你把它放在你的代碼的末尾(而不僅僅是頭部的末尾)會發生什麼? –

回答

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,​​或前面提到的突變觀測方法的額外需求。

相關問題