【发布时间】:2017-02-17 11:29:34
【问题描述】:
我有一个 $(document).ready 函数(显示移动菜单),它必须等待 jQuery 导入。我注意到有时它会出现,有时它不取决于 jQuery 是否首先加载。 jQuery 导入异步加载。我想延迟 $(document).ready 函数,直到确定 jQuery 已经加载。我尝试使用 defer 和 async 但它似乎不起作用。我也尝试添加 setTimeout() 但它也不起作用。
<script async='async' src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js' type='text/javascript' />
<script defer='defer' async='async' type='text/javascript'>
;(function ($, document, window) { var
// default settings object.
defaults = {
label: 'MENU',
duplicate: true,
duration: 200,
easingOpen: 'swing',
easingClose: 'swing',
closedSymbol: '►',
openedSymbol: '▼',
prependTo: 'body',
parentTag: 'a',
closeOnClick: false,
allowParentLinks: false,
nestedParentLinks: true,
showChildren: false,
init: function(){},
open: function(){},
close: function(){}
},... </script>
【问题讨论】:
-
async 属性仅与外部脚本相关,即对内联没有影响 - defer 属性,根据 MDN,“应该只用于外部脚本”-
-
我认为它不适用于内联脚本,但我只是尝试了一下。有没有办法让内联脚本等待 jQuery 导入?
-
尝试在 jQuery 脚本标签中使用
onload="someFunc()",并将您拥有的代码包装在function someFunc() { ... your code ... } -
我在那里没有看到 document.ready()。
标签: javascript jquery