2017-04-05 76 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是我的觸發器,它是一個垂直全寬下拉菜單,所以我需要更多的toggleClasses。

是否有任何其他的選擇嗎?更高效? 任何會爲我工作的圖書館?

我嘗試了很多方法,包括創建div,添加不同大小(使用媒體查詢)的不同屬性,並檢查這些屬性,但它不起作用。 任何幫助將不勝感激。乾杯!

+0

根據你的DOM的結構,你可以處理所有通過CSS,不需要jQuery。但要說更多並推薦最佳行動方案,您必須展示您的DOM。 –

回答

1

我其實解決這個問題,並在該窗口機能的研究上負載旁添加上調整大小,這樣

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

這裏的代碼,如果任何人都不會使用

$(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 
    } 
}); 

您可以添加許多你想要的東西。 乾杯。有一個好的