javascript只在页面刷新时执行 - Squarespace site,NO Turbolinks涉及

时间:2017-06-11 00:25:09

标签: javascript jquery responsive-design squarespace

这个网站上有类似的问题标题,我已经阅读了他们所有的解决方案,但问题始终与Turbolinks或其他一些问题有关。在这种情况下,我只使用javascript / jQuery,因此这些解决方案无关紧要。

我编写了一个简单的脚本,找到最高的容器,然后将块中的其余容器调整为与最高容器相同的高度。我将此脚本应用于Squarespace汇总块,以便同一块中的所有汇总项具有相同的高度。

然后我添加了一个条件语句,该语句将导致仅在屏幕宽度大于810px时执行此功能。

结果是这个脚本完全按照它应该工作,但只有当我直接进入页面或刷新页面时。如果我从另一个页面导航到该页面,它不起作用。

    $(function() {
     if($(window).width() > 810){
     var maxheight=-1;
     $('#block-yui_3_17_2_25_1494432854570_9795 .summary-excerpt').each(function() {
      if(maxheight < $(this).height())
      {
          maxheight = $(this).height();
      }
     });
     $('#block-yui_3_17_2_25_1494432854570_9795 .summary-excerpt').each(function() {
 $(this).height(maxheight);
     }); 
   }
});

我真的很感激任何想法,因为我已经研究过与我类似的每个问题,但没有一个解决方案适合我。

注意:我没有收到错误。我在if语句之前放置了一个alert(),并确认当您从另一个页面导航到该页面时该函数不会运行。但是,我按照预期刷新页面时会收到警报。

1 个答案:

答案 0 :(得分:1)

在Squarespace中,当您的自定义Javascript仅在页面刷新后有效时,很可能与Squarespace's AJAX loading有关:

  

有时,Ajax可能会与嵌入式自定义代码或锚点发生冲突   链接。 Ajax还可能干扰站点分析,记录命中   仅限第一页。

您可以为模板禁用AJAX。或者,请参阅此处列出的其他方法:JavaScript only being called once in Squarespace