2017-04-05 6 views
0

私はこの質問を何度も見たことがあります。 基本的に私はドロップダウンメニューを持っています。イベントを追加しようとしていますので、デスクトップ上のホバーとモバイルデバイスをクリックして開きます。モバイルでクリックしてJqueryトリガをかけ、デスクトップ上にマウスを置いて

私はこのコードを使用しようとしましたが、ウィンドウのサイズを変更した後に何とか動作します(すぐにはチェックされませんが、ウィンドウのサイズを変更した場合、それは明らかに与えられたコードで行われます。 )。

$(window).on('resize', function(event){ 
    var windowSize = $(window).width(); // Could've done $(this).width() 
    if(windowSize < 300){ 
     $('.menu-button').addClass('bbb'); 
    } else if(windowSize < 768){ 
     $('.dd-mlink').click(function() { 
      $(this).toggleClass('show'); 
      $('.dd-nav').toggleClass('dd-nav-full'); 
      $('.dd-menu').toggleClass('dd-menu-full'); 
     }); 
    } else { 
     $('.dd-mlink').hover(function() { 
      $(this).toggleClass('show'); 
      $('.dd-nav').toggleClass('dd-nav-full'); 
      $('.dd-menu').toggleClass('dd-menu-full'); 
     }); 
    } 
}); 

.dd-mlinkは私のトリガーです。これは垂直方向の全幅ドロップダウンですので、より多くのトグルクラスが必要です。

他にもオプションはありますか?もっと効率的? 私の仕事をするライブラリはありますか?

divを作成したり、さまざまなサイズの異なるプロパティを(メディアクエリで)追加したり、それらのプロパティをチェックしたりするなど、多くの方法を試しましたが、動作しません。 ご協力いただければ幸いです。乾杯!

+0

DOMの構造によっては、CSSを使用してjQueryを必要とせずにすべて処理できます。しかし、より多くのことを言い、最高の行動方針を推薦するには、DOMを表示する必要があります。 –

答えて

1

私は実際にここに誰もが今まで

$(window).on('load resize', function(event){ 
    var windowSize = $(window).width(); // Could've done $(this).width() 
    if(windowSize < 992){ 
     // your check here 
    } else if(windowSize > 994){ 
     // other statements 
    } 
}); 

を使用する場合は、として追加できるコードがあります。この

$(window).on('load resize', function(event){ 

のように、そのウィンドウのfuctionでリサイズ上の次に負荷に追加することで、この問題を解決しますあなたが望む多くのelses。 乾杯。良いものをお持ちください

関連する問題