Javascript / JQuery在重新加载页面后才起作用

问题描述 投票:3回答:2

此代码列在我所有网页的标题上。当我单击网站上的链接时,只有刷新后才能使用页面上的按钮。我该如何解决?

 <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>
javascript jquery html web squarespace
2个回答
3
投票

这听起来像与您的自定义脚本和Squarespace's AJAX loading

有时,Ajax可能与嵌入式自定义代码或锚点冲突链接。 Ajax还会干扰网站分析,记录访问量仅首页。

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

您可以在样式编辑器中禁用Ajax,但有一些例外:

  • 不能在Skye,Foundry或Tudor中禁用Ajax。
  • 无法在Farro和Haute的博客目标网页上禁用Ajax。如果在这些模板中取消选中“启用Ajax加载”,则它们仍将使用Ajax加载博客页面。

启用或禁用Ajax:

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

如果您不想完全禁用AJAX,那么请使用see "Option 2" in this answer编写代码的方式,以便它可以在初始页面加载和AJAX页面加载时工作。


2
投票

似乎Ajax动态加载内容并破坏了绑定。

您可以在每个Ajax请求之后使用$.ajaxComplete()来调用函数>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
<script>
  function faqElementClick() {
    $('.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');
      }
    });
  };
  $(document).ready(faqElementClick);
  $(document).ajaxComplete(faqElementClick);
</script>
© www.soinside.com 2019 - 2024. All rights reserved.