2016-10-25 6 views
-1

.navigation.primaryが.activeのクラスを持っていても、動作していないようであれば、以下のスクリプトは.global-headerにクラス(.active)を追加する予定ですか?hasClass + addClass notfunctioning

JS

if($(".navigation.primary").hasClass("active")) { 
    $('.global-header').addClass('active'); 
} 

HTML

<header class="global-header"> 
    <div class="site-navigation"> 
     <div class="left-menu"></div> 
     <div class="right-menu"></div> 
    </div> 
</header> 

<nav class="navigation primary">Menu</nav> 
+1

あなたが示したことができますHTMLコードですか? – PSR

+0

DOMのスニペットも提供できますか? –

+0

どのようにして「*動作しているように見えますか?*」何が起こっていないのか、何が起こっていないのか、起こらないのか、ブラウザでエラーメッセージが報告されていますか?どのように問題があるのか​​、何が起こることが予想されるのかわからなくても、私たちはこの問題に対処することを期待していますか? –

答えて

1

、ページをロードする際に、navigation.primaryを持つ要素が全くactiveクラスを持っていないが、後に、アクションが発生したときactiveを取得する場合クラスの追加をトリガーするイベントリスナーをコードの周りにイベントに追加する必要があります。

navigation.primaryは、ページのロードが、あなたは準備ができて、ドキュメントを追加する必要がactiveた場合:

$(function() { //when document is ready 
    if($(".navigation.primary").hasClass("active")) { 
     $('.global-header').addClass('active'); 
    } 
}); 

またはイベントが発生した場合に、例えば、ウィンドウをスクロール:

$(function() { //when document is ready 
    $(window).on('scroll', function() { //When scrolling 
     if($(".navigation.primary").hasClass("active")) { 
      $('.global-header').addClass('active'); 
     } 
    }); 
}); 
0

あなた.navigation.primaryアクティブなクラスを持っていません。したがって通常、$(".navigation.primary").hasClass("active")はfalseと評価されます。

<nav class="navigation primary">Menu</nav> 

これは次のようになります。コメントに基づいて

<nav class="navigation primary active">Menu</nav>