Pracuję nad funkcją, aby przełączyć menu na kliknięciu, ale nie może sprawić, że działa, ponieważ została przebita z jQuery 1.9.

Nie mam pojęcia, jak udać się do pracy.

Chcę ponownie kliknąć na menu IMG i rozszerzyć menu, a następnym razem, gdy zrobię to ponownie.

To jest mój kod:

$(document).ready(function(){
$('.menu img').click(function(){
    var wWidth = $(window).width();
    var wHeight = $(window).height()
    $('.menu').animate({width: wWidth + 'px', height: wHeight + 'px'}, 500);
    $('.menu').toggleClass('menu_expanded');
});

Z góry dziękuję.

Oto jsfiddle jako żądanie: http://jsfiddle.net/Czef8OFB/

1
Fyxerz 15 sierpień 2014, 23:23

2 odpowiedzi

Najlepsza odpowiedź

Możesz spróbować następującego kodu - .hasClass() sprawdza, czy element nawigacyjny został już przypisany klasę .menu_expanded i pokazuje / ukrywa menu.

$(document).ready(function(){
    $('.menu img').click(function(){
        var wWidth = $(window).width();
        var wHeight = $(window).height()
        if(!$('.menu').hasClass('menu_expanded')){
            $('.menu').animate({width: wWidth + 'px', height: wHeight + 'px'}, 500);
        }else{
            //code to hide menu again
        }
        $('.menu').toggleClass('menu_expanded');
    });
});
1
Marcel 15 sierpień 2014, 19:34

Według Dokumentów JQuery:

Ta metoda podpisano przez jQuery 1.8 i usunięto w jQuery 1.9. JQUERY zapewnia również metodę animacji o nazwie .toggle (), który przełącza widoczność elementów. Czy animacja lub metoda zdarzenia zostaje zwolniona, zależy od zestawu argumentów.

Więc należy użyć tego zamiast tego: Metoda animacji .toggle ()

0
David says reinstate Monica 15 sierpień 2014, 19:37