Почему не работает скрипт?
Имеется скрипт:
$(document).ready(function(){ var $menu = $("#menu"); $(window).scroll(function(){ if ( $(this).scrollTop() > 100 && $menu.hasClass("header-menu") ){ $menu.addClass("navbar-fixed-top"); } else if($(this).scrollTop() <= 100 && $menu.hasClass("navbar-fixed-top")) { $menu.removeClass("navbar-fixed-top"); } });//scroll }); Структура html <div class="header-logo">лого</div> <div class="header-menu" id="menu"> контент </div> CSS: Код:
.header-logo { А в консоли вот это: TypeError: $ is not a function var $menu = $("#menu"); В чем причина? |
razorg1991,
либо jquery неуспело прогрузиться либо другой скрипт занял $ |
Цитата:
А можно ли как-то переписать этот скрипт на чистом js, чтобы не возникало этих проблем? |
razorg1991,
jQuery.noConflict(); jQuery.noConflict(); jQuery(document).ready(function($) { // здесь $ будет действовать как алиас jQuery }); Цитата:
|
Заработало ))))) Держи еще плюс )))
|
Теперь даже поправил немного скрипт:
jQuery.noConflict(); jQuery(document).ready(function($){ var $menu = $("#menu"); var $logo = $("#logo"); $(window).scroll(function(){ if ( $(this).scrollTop() > $logo.height() ){ $menu.addClass("navbar-fixed-top"); } else if($(this).scrollTop() <= $logo.height()) { $menu.removeClass("navbar-fixed-top"); } });//scroll }); А в html добавил еще диву с классом header-logo еще id logo. Теперь скрипт автоматом вычисляет, когда нужно фиксировать меню сверху )))) |
razorg1991,
кешировать так кешировать :dance: jQuery.noConflict(); jQuery(document).ready(function($){ var $menu = $("#menu"), $logo = $("#logo"), $window = $(window); $window.scroll(function(){ if ( $window.scrollTop() > $logo.height() ){ $menu.addClass("navbar-fixed-top"); } else if($window.scrollTop() <= $logo.height()) { $menu.removeClass("navbar-fixed-top"); } });//scroll }); |
Часовой пояс GMT +3, время: 11:23. |