Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему этот код работает только один раз, при загрузке. Как сделать, что бы он работал постоянно?

аппып вапыапыпыаврпрв Ученик (85), на голосовании 7 лет назад
$(document).ready(function(){
if (window.innerWidth>=767)
{
$('#menu').addClass('fix');
$(window).scroll(function(){
if ($(window).scrollTop() > 350)
{
$('#menu').addClass('fix');
}
else
{
$('#menu').removeClass('fix');
}
});
}
if (window.innerWidth<767)
{
$('#menu').removeClass('fix');
$(window).scroll(function(){
if ($(window).scrollTop() > 150) {
$('.mobile-menu-b').addClass('mobile-menu');

}
else
{
$('.mobile-menu-b').removeClass('mobile-menu');
}
});
}
});

https://jsfiddle.net/72oxsmt9/9/
Голосование за лучший ответ
IRQ Оракул (53025) 7 лет назад
Потом что document.ready вызывается 1 раз при загрузке документа. Разве это не очевидно?
аппып вапыапыпыаврпрвУченик (85) 7 лет назад
я это понял, а как сделать, что бы он выполнялся постоянно?
IRQ Оракул (53025) Такого не бывает. Нужно что-то вроде отслеживания событий изменения размера. Вот посмотри одну из первых ссылок в гугле http://stackoverflow.com/questions/9828831/jquery-on-window-resize
Сергей Иванов Просветленный (48607) 7 лет назад
Если нужно постоянное выполнение, посмотри на методы setTimeout, setInterval, requestAnimationFrame.
Похожие вопросы