不能与Jquery脚本一起使用异步延迟

时间:2019-01-17 21:06:27

标签: jquery deferred-loading

我正在尝试对此脚本使用异步延迟,但会影响功能。我不确定自己在做什么错?如果您需要查看网站,请查看以下信息:The Hangout

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script>
    $(window).bind("load", function() {
      $(window).scroll(function () {
          if ($(this).scrollTop() > 600) {
              $('.scrollup').fadeIn();
          } else {
              $('.scrollup').fadeOut();
          }
      });
      $('.scrollup').click(function () {
          $("html, body").animate({
              scrollTop: 0
          }, 600);
          return false;
      });
      });
        </script>

1 个答案:

答案 0 :(得分:0)

使用defer可以按指定的顺序来加载脚本,但不能在文档本身(包括内联代码)加载之前加载。

您可以执行以下两项操作之一:

  1. 使用defer时将内联代码移动到外部文件
  2. 将内联代码包装在DOMContentLoaded事件回调中

回调类似于:

window.addEventListener('DOMContentLoaded', function() {
  $(window).scroll(function () {
    $('.scrollup')[$(window).scrollTop() > 600 ? 'fadeIn' : 'fadeOut']();
  });
  $('.scrollup').click(function () {
    $("html, body").animate({scrollTop: 0}, 600);
    return false;
  });
});