嗨,我有一个问题我无法解决。我有一个移动菜单,可以在浏览器中正常工作,但只有在刷新页面后才能在智能手机上使用
我得到了
未捕获的ReferenceError:未定义jQuery
以下是代码,下面是脚本加载的顺序
(function($) {
$.fn.collapsable = function(options) {
return this.each(function() {
var obj = $(this);
var tree = obj.next('.main-menu ul');
obj.click(function() {
if (obj.is(':visible')) {
tree.toggle();
}
});
$(window).resize(function() {
if ($(window).width() <= 800) {
tree.attr('style', '');
};
});
});
};
})(jQuery);
$(document).ready(function() {
$('.slide-trigger').collapsable();
});
(分析代码首先加载页面顶部www.google-analytics.com/analytics.js)
其余的脚本从主体内部的页脚加载,mobile-menu.js与上面的代码相关。
<script async src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" type="text/javascript"></script>
<script async src="js/mobile-menu.js" type="text/javascript"></script>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<script async>(adsbygoogle = window.adsbygoogle || []).push({});</script>
<script async>(adsbygoogle = window.adsbygoogle || []).push({});</script>
<script async>(adsbygoogle = window.adsbygoogle || []).push({});</script>
我在stackoverflow和其他网站上搜索了很多链接以获得答案。我已经尝试过没有冲突我已经交换了其他脚本加载但没有任何内容的顺序。
请。非常感谢您的光临。
答案 0 :(得分:1)
从前两个脚本标记中删除异步,如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" type="text/javascript"></script>
<script src="js/mobile-menu.js" type="text/javascript"></script>
jQuery完成下载,并在发生错误时在您自己的脚本文件之后运行。当您向脚本标记添加异步时,它们会在完成下载时运行。
因此,让脚本加载并运行同步,它将正常工作。