Прерывистая ReferenceError: $ не определено - PullRequest
0 голосов
/ 10 января 2019

Добавление цвета фона к навигационной панели при прокрутке, и он случайно не будет работать. Я бы сказал, 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>

Кажется, ошибка постоянно появляется во фрагменте кода. Есть мысли?

1 Ответ

0 голосов
/ 11 января 2019

Не используйте асинхронный, удалите его.

https://www.w3schools.com/tags/att_script_async.asp

Может быть, попробуйте отложить атрибут, если хотите.

сценарии, помеченные async , выполняются в случайном порядке, когда они становятся доступными. Сценарии, помеченные как отложенные, выполняются (после завершения анализа) в том порядке, в котором они определены в разметке.

Но тогда также откладывает ваш сценарий, поскольку порядок имеет значение, и вы не хотите, чтобы ваш сценарий выполнялся до загрузки jquery, что иногда случается с async в вашем случае.

...