2016-08-28 3 views
0

モバイルナビをクリックしてコンテンツが消えてリンクが表示されるだけで、リンクがページ上をスライドするようにしようとしています。私はこれを基本的に動作させていますが、mobilenavを再びクリックすると.displayNoneクラスは削除されません。なぜか、私はちょっと頭がおかしくなります。JQueryがアクティブクラスを削除していない

$(document).ready(function() { 
    $('#hamburger').on('click', function(){ 
     $('.links').slideToggle(200); 
     var status = $('.wrapper').hasClass('.displayNone'); 
     if(status){ $('.wrapper').removeClass('.displayNone'); } 
     else { $('.wrapper').addClass('displayNone'); } 
    }); 

    }); 

これまでの初心者のビット。誰もがこれで間違って見ることができることは明らかですか?

答えて

0

使用toggleClass()

$('.wrapper').toggleClass('displayNone'); 

そして、jQueryのxxxClass()機能は、クラスの名前ではなく、セレクタを期待し、その.クラスセレクタをオフにしておきます。

0

クラスを追加/削除するときは、displayNone.displayNoneではなく!)を使用してください。

はまた、あなたは自分が

var status = $('.wrapper').hasClass('.displayNone'); 

あなたがhasClass, addClass or removeClassを使用し、間違ったビットをやっている

$('.wrapper').toggleClass('displayNone'); 
0

を行う必要があることを意味statusことを、やってからあなたを節約toggleClass()機能がありますあなた'持っている必要はありません。'クラス名の前にドットを付けます。

ので、正しい方法で補正を使用でき

$(document).ready(function() { 
    $('#hamburger').on('click', function() { 
    $('.links').slideToggle(200); 
    var status = $('.wrapper').hasClass('displayNone'); 
    if (status) { 
     $('.wrapper').removeClass('displayNone'); 
    } else { 
     $('.wrapper').addClass('displayNone'); 
    } 
    }); 
}); 
+0

ありがとうございました –

0

var status = $('.wrapper').hasClass('displayNone'); 

あなたのコードです:

$('.wrapper').toggleClass("displayNone"); 

決勝コード:

$(document).ready(function(){ 

    $('#hamburger').on('click', function(){ 

     $('.links').slideToggle(200); 

     $('.wrapper').toggleClass("displayNone"); 

    }) 

}) 
関連する問題