首页 > 解决方案 > 尽管有 Ajax,如何重写 javascript 以强制它加载?

问题描述

我有以下 javascript 代码,问题是我正在处理的 Squarespace 网站需要 Ajax 加载。因此,只有在加载后刷新页面时,此代码才有效。更多关于这个问题的信息在这里https://forum.squarespace.com/topic/87058-why-doesnt-my-javascript-code-work-until-i-refresh-the-page/

我将不胜感激任何关于如何重写它的指针,以便它在 Ajax 的情况下加载。当我禁用 Ajax 时,它的效果非常好,但不幸的是,我需要将其打开以使站点的其余部分看起来不错。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script> $(document).ready(function(){
$('.markdown-block .sqs-block-content h3').css('cursor','pointer');
$(".markdown-block .sqs-block-content h3").nextUntil("h3").slideToggle();
$(".markdown-block .sqs-block-content h3").click(function()
{$(this).nextUntil("h3").slideToggle();}); }); </script>

标签: javascriptjqueryajaxsquarespace

解决方案


这是一个常见问题,开发人员有几种常见的解决方案

在您的情况下,通过站点范围的代码注入插入:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
window.Squarespace.onInitialize(Y, function() {
  $('.markdown-block .sqs-block-content h3').css('cursor','pointer');
  $(".markdown-block .sqs-block-content h3").nextUntil("h3").slideToggle();
  $(".markdown-block .sqs-block-content h3").click(function() {
    $(this).nextUntil("h3").slideToggle();
  });
});
</script>

推荐阅读