如何在脚本标签中正确使用 defer/async 属性

2024-01-05

我在所有外部 js 文件中使用“defer”属性运行以下代码,但当我在脚本标记中使用 defer 属性时,Owl Carousel 不会加载。它还显示错误“$”未定义。如果我从脚本标记中删除延迟属性,一切都会正常工作,没有任何错误。 注意:由于某种原因,我无法将 owl-carousel 演示脚本放入另一个外部 js 文件中。有没有什么办法解决这一问题。也不只是猫头鹰旋转木马,如果我把

<script>
    $(document).ready(function(){
      alert('hi');
  });
</script>

它也不起作用。

<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <title>Defer attribute</title>

  <!-- Bootstrap core CSS -->
  <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css" rel="stylesheet">
  <style>
    .item {
      background: #ff3f4d;
    }
    
    h2 {
      color: #FFF;
      text-align: center;
      padding: 5rem 0;
      margin: 0;
      font-style: italic;
      font-weight: 300;
    }
    
    @media only screen and (min-width: 40.0625em) {
      h2 {
        font-size: 2.3125rem;
      }
    }
  </style>
  <script src="https://code.jquery.com/jquery-3.3.1.min.js" defer></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.4/popper.min.js" defer></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.min.js" defer></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js" defer></script>
  <script>
    $(document).ready(function() {
      var owl = $('.owl-carousel');
      owl.owlCarousel({
        margin: 10,
        loop: true,
        responsive: {
          0: {
            items: 1
          },
          600: {
            items: 2
          },
          1000: {
            items: 3
          }
        }
      });
    });
  </script>
</head>

<body>
  <div class="container">
    <h1 class="text-center">Hello World!</h1>
    <div class="owl-carousel">
      <div class="item">
        <h2>Swipe</h2>
      </div>
      <div class="item">
        <h2>Drag</h2>
      </div>
      <div class="item">
        <h2>Responsive</h2>
      </div>
      <div class="item">
        <h2>CSS3</h2>
      </div>
      <div class="item">
        <h2>Fast</h2>
      </div>
      <div class="item">
        <h2>Easy</h2>
      </div>
      <div class="item">
        <h2>Free</h2>
      </div>
      <div class="item">
        <h2>Upgradable</h2>
      </div>
      <div class="item">
        <h2>Tons of options</h2>
      </div>
      <div class="item">
        <h2>Infinity</h2>
      </div>
      <div class="item">
        <h2>Auto Width</h2>
      </div>
    </div>
  </div>
</body>

</html>

如果你想使用defer您应该使用的外部脚本中的属性window.onload事件,因为它在加载所有页面(包括延迟脚本)后触发。尝试:

<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <title>Defer attribute</title>

  <!-- Bootstrap core CSS -->
  <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css" rel="stylesheet">
  <style>
    .item {
      background: #ff3f4d;
    }
    
    h2 {
      color: #FFF;
      text-align: center;
      padding: 5rem 0;
      margin: 0;
      font-style: italic;
      font-weight: 300;
    }
    
    @media only screen and (min-width: 40.0625em) {
      h2 {
        font-size: 2.3125rem;
      }
    }
  </style>
  <script src="https://code.jquery.com/jquery-3.3.1.min.js" defer></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.4/popper.min.js" defer></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.min.js" defer></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js" defer></script>
  <script>
    window.onload = function() {
      var owl = $('.owl-carousel');
      owl.owlCarousel({
        margin: 10,
        loop: true,
        responsive: {
          0: {
            items: 1
          },
          600: {
            items: 2
          },
          1000: {
            items: 3
          }
        }
      });
    };
  </script>
</head>

<body>
  <div class="container">
    <h1 class="text-center">Hello World!</h1>
    <div class="owl-carousel">
      <div class="item">
        <h2>Swipe</h2>
      </div>
      <div class="item">
        <h2>Drag</h2>
      </div>
      <div class="item">
        <h2>Responsive</h2>
      </div>
      <div class="item">
        <h2>CSS3</h2>
      </div>
      <div class="item">
        <h2>Fast</h2>
      </div>
      <div class="item">
        <h2>Easy</h2>
      </div>
      <div class="item">
        <h2>Free</h2>
      </div>
      <div class="item">
        <h2>Upgradable</h2>
      </div>
      <div class="item">
        <h2>Tons of options</h2>
      </div>
      <div class="item">
        <h2>Infinity</h2>
      </div>
      <div class="item">
        <h2>Auto Width</h2>
      </div>
    </div>
  </div>
</body>

</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在脚本标签中正确使用 defer/async 属性 的相关文章

  • 使用jquery,下拉列表选择更改时如何重定向?

    我有一个下拉列表 如果有人选择一个选项 我想根据选择重定向到另一个页面 我怎样才能通过 jquery 做到这一点 将逻辑绑定到 change 事件 并从中获取当前值 val 以确定用户应该被重定向到哪里 此示例假设位置直接存储在值本身中 m
  • 有没有办法强制浏览器刷新/下载图像?

    我遇到一个问题 用户报告他们的图像没有上传 而旧图像仍然存在 仔细检查后 新图像就在那里 它们只是与旧图像具有相同的名称 我在上传时所做的是出于搜索引擎优化的目的重命名图像 当他们删除图像时 旧索引变得可用并被重用 因此它具有相同的图像名称
  • 添加/更改 URL 参数并重定向到新 URL

    If the view allURL 中不存在参数 我需要将其与值一起添加到 URL 的末尾 如果它确实存在 那么我需要能够仅更改该值而不创建新的 URL 因为它之前可能有也可能没有其他参数 我找到了这个功能 但我无法让它工作 https
  • 在引导汉堡包图标的左侧添加电话和地图图标

    我有一个基本的 bootstrap v3 网站 当导航栏在较小的屏幕上切换到汉堡包图标时 我想添加一个电话图标 链接到电话号码 和一个地图图标 链接到谷歌地图 以便移动用户可以轻松访问它们 我尝试通过在 navbar toggle 按钮之前
  • 在 JQueryUI 小部件的 QUnit 测试中测试可见性

    这对于其他人来说可能是显而易见的 但我没有通过搜索找到它 所以在这里发布问题和一个可能的答案 背景 使用自定义 JQuery UI 小部件小部件工厂 http jqueryui com widget 在小部件中 某些元素根据其他数据 选项隐
  • 如何将多种语言设置放入单个 .clang-format 文件中

    我想为 java javascript 和 c 创建一个 clang 格式 我知道如何转储单一语言的示例配置 但不知道如何合并这 3 个配置文件 有关如何将多种语言配置放入单个文件中的示例 BasedOnStyle LLVM IndentW
  • 会话变量从 while 循环发送特定变量

    我有这个简单的while 循环它从 mysql 查询中检索数据并在我的主页上显示几个链接 我想避免使用 php get 函数并将查询字符串添加到我的网址中 我正在考虑使用会话变量 但我需要帮助 而且我很确定这是无法完成的 当访问者单击 wh
  • 用角度js中的字母过滤列表

    我在表格中显示了一个列表 我需要使用名称的第一个字母来过滤结果 在列表上方我有一个字母 A B C D 等等 单击后 字母列表将按名字过滤 例如 列表详细信息是Apple Boy Bridge点击后A Apple将显示 我必须过滤国家名称以
  • 类型错误:$.param.querystring 不是 Yii 中的函数

    我正在使用文本字段进行搜索 这样做时我收到错误类型错误 param querystring 不是函数 我怎样才能摆脱这个 检查您的页面中是否多次包含 jquery js 我有同样的错误 原因是 yii 已
  • 在 for 循环中突破 Promise 块

    我有以下代码 this storeNameValidate function stores var deferred q defer console log stores for storeIndex in stores this name
  • 如何在 Bootstrap 4 中正确地将表单行逐一对齐

    如何将部分以及日期和时间调整为低于客人人数 如何将按钮移动到日期和时间文本字段下方 div class modal fade div class div div
  • jquery .html() 不适用于 ie8

    我有一个 jquery 函数 它对 Web 服务器上的 Web 服务方法进行 ajax 调用 该方法返回一个包含数据的 html 表 我正在使用 html 渲染 div 上的返回值 这适用于 Firefox Chrome Safari 但不
  • 函数声明可以出现在 JavaScript 的语句内部吗?

    请考虑将官方 ECMAScript 规范作为您答案的来源 而不是特定浏览器供应商发布的文档 我知道 Mozilla 用 函数语句 扩展了它的 JavaScript 实现 因此 根据 ECMAScript 规范 因此 其中定义的语法产生式 这
  • 如何在 AngularJS 中设置选择选项中的文本格式?

    我有以下 json 对象 scope values id 2 code Code 1 name Sample 1 id 4 code Code 2 name Sample 2 id 7 code Code 3 name Sample 3 在
  • 静态资源和非静态资源有什么区别?

    我主要是一名前端开发人员 设计师 但最近我一直在探索端到端解决方案 昨天 我使用平均堆栈完成了一个 TODO 应用程序 并想开始探索我的 VPS 的部署选项 话虽这么说 有人建议我使用 nginx 作为反向代理来提供静态资源 不幸的是 我陷
  • Vue js - 在同一级别的两个组件内传递数据

    我有需要从一个传递的数据component1到另一个component2 我不使用vuex or router 组件树 Parent Component1 Component2 从一开始component1我发出 ajax 请求 检索信息并
  • 为什么事件属性不容易获取?

    我有以下代码 HERE https jsfiddle net 5n2zagjc 2 是可编辑的示例 用法 在输入字段中键入并观看控制台 function test event let keys Object keys event let k
  • JSON 数据的动态表单(不同类型)

    我尝试使用 JSON 中的数据在 AngularJS 中创建动态表单 我有这个工作 HTML p p
  • 返回语句后的声明

    function f return f1 function f1 return 5 f returns 5 为什么这有效 之后声明局部函数有什么好处return 这是好的做法吗 它之所以有效 是因为函数声明都是由解释器在第一次传递时评估的
  • 未终止的字符串文字

    我有一个 php 脚本 可以在我的服务器上上传 mp3 文件 我使用 上传 有一个事件 onSelect 文档 http www uploadify com documentation events onselect 当文件上传时调用 使用

随机推荐