Почему не работает скрипт?
Имеется скрипт:
$(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, время: 01:51. |