2014-03-12 21 views
1

1100px & 640px之間,下面的jQuery腳本工作正常:jQuery的addClass()在某些媒體不工作查詢

$('#mobileMenu').click(function(){  
    if ($('body').hasClass('mobile-nav-open')) { 
     $('body').removeClass('mobile-nav-open') 
    } else { 
     $('body').addClass('mobile-nav-open'); 
    }; 
    }); 

這樣做是什麼點擊a#mobileMenu時,一個類被添加到body並且移動導航菜單滑入,然後該類被移除並且移動導航菜單在另一次點擊時關閉。

但是,如果頁面加載在<=640px,類.mobile-nav-open永遠不會被添加到body。我不能爲了我的生活找出它爲什麼不起作用。此代碼也正通過Squarespace的代碼注入插入到頁腳中。有很多JS打包到模板中,可能會干擾,但我無法弄清楚如何覆蓋它。任何人都可以幫助我?任何幫助表示讚賞。

該網站可以在這裏看到:https://ryan-vandyke-4rks.squarespace.com/

這看起來是我想要重寫:

Y.use(function (a) { 
    a.on("domready", function() { 
    if (640 >= a.one("body").get("clientWidth")) a.one("#mobileMenu").on("click", function() { 
     a.one("body").hasClass("mobile-nav-open") ? a.one("body").removeClass("mobile-nav-open") : 
     (a.one("body").addClass("mobile-nav-open"), a.one("body.email-open") && a.one("body").removeClass("email-open"), a.one("body.desc-open") && a.one("body").removeClass("desc-open")) 
    }); 
    }) 
}); 
+3

無關,與你的問題,但你爲什麼不只是使用'$(document.body的).toggleClass( '移動導航開');',而不是'if/else'? – jfriend00

+0

@ jfriend00抱歉,我沒有看到如果條件 –

+0

@ jfriend00仍然沒有工作:/但謝謝,我會牢記它。 –

回答

1

而不是相加的/刪除下面的方法來增加點擊試試類/刪除上body標籤。

function addBodyClass(){ 
    if($(window).width() <= 640){ 
     $('body').addClass('mobile-nav-open'); 
    } else { 
     $('body').removeClass('mobile-nav-open'); 
    } 
} 

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

Fiddle Demo

+0

感謝您的解決方案,但我需要它發生點擊。 –