2015-05-07 3 views
0

Я пытаюсь сделать скрипт работать только в том случае, если пользователь находится в 1024 или меньше. Он работает несколько хорошо, если пользователь не изменяет размер окна. Но когда я запускаю событие click ниже 1024, а затем изменяю его размер, можно сказать, что добавлены классы переключения, а анимация снова обманывает.Функция Jquery по определенному размеру окна

Любые предложения?

if ($(window).width() <= 1024) { 
    $("#primary-menu").click(function(){ 
     $(".main-navigation").removeClass("toggled"); 
     $(".cmn-toggle-switch").removeClass("active"); 
     $(".menu-item").toggleClass("animated").toggleClass("wow").toggleClass("fadeInUp"); 
    }); 

    $(".hamburger-menu-text").click(function(){ 
     $(".cmn-toggle-switch").toggleClass("active"); 
     $(".main-navigation").toggleClass("toggled"); 
     $(".menu-item").toggleClass("animated").toggleClass("wow").toggleClass("fadeInUp"); 
    });  
}; 
+0

Рассмотрите возможность использования метода 'window.matchMedia()', чтобы избежать какой-либо ошибки. Https://developer.mozilla.org/en/docs/Web/API/Window/matchMedia. Говорят, похоже, вам просто нужно будет использовать CSS-запросы СМИ –

ответ

2

использовать, если заявление внутри события нажатия

$("#primary-menu").on('click',function(){ 
    if ($(window).width() <= 1024) { 
     //.......... 
    }else{ 
     //.......... 
    } 
}); 
+0

Я даже не думаю, что здесь требуется 'else', из чего указывает OP, если он не соответствует требованиям размера окна, он ничего не должен делать. Похоже, все будет в 'if'. –

+0

@SpencerWieczorek Я должен дать OP немного больше (код) .. Может быть, он нужен один в день .. может быть :) –

+1

Спасибо большое :) работает! И он работает без указания else. Приветствия –

0

Проверьте ширина окна на документ готов и на изменения размеров окна, и назначить или удалить click слушателя:

var primaryFunc = function() { 
    $(".main-navigation").removeClass("toggled"); 
    $(".cmn-toggle-switch").removeClass("active"); 
    $(".menu-item").toggleClass("animated").toggleClass("wow").toggleClass("fadeInUp"); 
} 

var hamFunc = function() { 
    $(".cmn-toggle-switch").toggleClass("active"); 
    $(".main-navigation").toggleClass("toggled"); 
    $(".menu-item").toggleClass("animated").toggleClass("wow").toggleClass("fadeInUp"); 
} 

var resetElements = function() { 
    // Unbind the click event 
    $("#primary-menu").off('click'); 
    $(".hamburger-menu-text").off('click'); 

    // remove assigned classes from elements 
} 

var checkWin = function() { 
    var w = $(window).width(); 
    if (w <= 1024) { 
     $("#primary-menu").on('click', function() { 
      primaryFunc(); 
     }); 
     $(".hamburger-menu-text").on('click', function() { 
      hamFunc(); 
     }); 
    } else {   
     resetElements(); 
    } 
} 

Execute checkWin() на дом готов и на окне изменить размер:

$(document).ready(function() { 
    checkWin(); 
}) 

$(window).resize(function() { 
    checkWin(); 
}); 
+0

Спасибо за ваш вклад :) :) Решение выше твоего делало работу. –

Смежные вопросы