Intermittent ReferenceError: $ is undefined
Intermittent ReferenceError: $ is undefined
给滚动时的导航添加背景色,随机不生效。我会说 50% 的时间它工作,50% 我得到 ReferenceError。这是多个设备,多个浏览器,多个页面。
<script async src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(document).scroll(function () {
var $nav = $(".masthead");
$nav.toggleClass('navBG', $(this).scrollTop() > $nav.height());
});
});
</script>
.masthead{width:100%;height:80px;position:fixed;top:0;left:0;z-index:9999;box-shadow: 0 50px 50px -20px rgba(0, 0, 0, 0.2) inset;}
.masthead.navBG{box-shadow:0 5px 30px 5px rgba(0, 0, 0, 0.4);background-color:#01417E; !important;transition:background-color 100ms linear;}
<div class="masthead">
<nav id="sidenavContainer" class="sidenav">
<!-- SOME LIs -->
<!-- JS for Nav Functionality -->
</nav>
<div id="navTri" onclick="openNav()"><img src="menu.svg" alt="Menu" width="30"></div>
<div id="logoMain"><a href="#"><img src="logo.svg" alt="Logo"></a></div>
</div>
错误似乎一直出现在代码片段中。有什么想法吗?
不要使用异步,删除它。
https://www.w3schools.com/tags/att_script_async.asp
如果你愿意,可以试试 defer 属性。
标记为 async 的脚本在可用时以随意的顺序执行。标记为 defer 的脚本按照它们在标记中定义的顺序执行(在解析完成后)。
但是,延迟你的脚本,因为顺序很重要,你不希望你的脚本在 jquery 加载之前执行,这就是发生的事情有时在你的情况下使用异步。
给滚动时的导航添加背景色,随机不生效。我会说 50% 的时间它工作,50% 我得到 ReferenceError。这是多个设备,多个浏览器,多个页面。
<script async src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(document).scroll(function () {
var $nav = $(".masthead");
$nav.toggleClass('navBG', $(this).scrollTop() > $nav.height());
});
});
</script>
.masthead{width:100%;height:80px;position:fixed;top:0;left:0;z-index:9999;box-shadow: 0 50px 50px -20px rgba(0, 0, 0, 0.2) inset;}
.masthead.navBG{box-shadow:0 5px 30px 5px rgba(0, 0, 0, 0.4);background-color:#01417E; !important;transition:background-color 100ms linear;}
<div class="masthead">
<nav id="sidenavContainer" class="sidenav">
<!-- SOME LIs -->
<!-- JS for Nav Functionality -->
</nav>
<div id="navTri" onclick="openNav()"><img src="menu.svg" alt="Menu" width="30"></div>
<div id="logoMain"><a href="#"><img src="logo.svg" alt="Logo"></a></div>
</div>
错误似乎一直出现在代码片段中。有什么想法吗?
不要使用异步,删除它。
https://www.w3schools.com/tags/att_script_async.asp
如果你愿意,可以试试 defer 属性。
标记为 async 的脚本在可用时以随意的顺序执行。标记为 defer 的脚本按照它们在标记中定义的顺序执行(在解析完成后)。
但是,延迟你的脚本,因为顺序很重要,你不希望你的脚本在 jquery 加载之前执行,这就是发生的事情有时在你的情况下使用异步。