2017-02-27 6 views
0

にtoggleClassと特定のウィンドウ幅にaddClassを使用して:jQueryの - 私はサイズ変更の私は、特定のウィンドウサイズの要素を示して助けるクラスjQueryの機能を追加したのと同じ要素

<div class="v-menu"></div> 
<div id="menu"> 
    <a href="#">a</a> 
    <a href="#">b</a> 
    <a href="#">c</a> 
</div> 

(function($) { 
     var $window = $(window), 
      $html = $('#menu'); 
     function resize() { 
      if ($window.width() < 612) { 
       return $html.addClass('close'); 
      } 
      else{ 
      $html.removeClass('close'); 
      $html.removeClass('open'); 
      $('*[class=""]').removeAttr('class'); 
      } 
     } 
     $window 
      .resize(resize) 
      .trigger('resize'); 
    })(jQuery); 

と私は別の関数でそれを切り替えることができます。

$(".v-menu").click(function(){ 
$("#menu").toggleClass("open"); 
$("#menu").toggleClass("close"); 
}); 

私は切り替えた場合に問題がありますを開き、する要素はウィンドウのサイズを変更するjQueryのは、要素にcloseクラスを追加し続ける:

<div id="menu" class="open close"> 
    <a href="#">a</a> 
    <a href="#">b</a> 
    <a href="#">c</a> 
</div> 

どのように私はそれを解決できますか?

+0

それはあなたが達成したいことは何ですか?今すぐウィンドウのサイズを変更してウィンドウの幅が612よりも小さい場合、 '.close'が常に追加されます –

+0

@ mediaクエリをCSSで使うことができます。ウィンドウサイズに基づいて要素を表示/非表示します。 https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries –

+0

@NiekNijland 'close'クラスが' open'クラスが追加されたときに追加したくないです。 – newbie

答えて

1

コメント

に基づいて、私はオープンクラスが追加されたときに近いクラスが追加することを望むいけません。

https://api.jquery.com/hasclass/

if ($window.width() < 612){ 
     if(!$html.hasClass('open')) { 
        return $html.addClass('close'); 
     } 
} 
関連する問題