2015-11-05 54 views
1

我有一個項目使用jQuery 1.11.2.1jQuery的toggleClass如果另一個元素是可見的

哪裏這個jQuery語句,沒有任何問題的工作:

$(document).ready(function() { 
    $(".clickme").click(function(){ 
     $("#menu").toggleClass("fixed", $($("#panel").is(":visible"))); 
     $("#panel").slideToggle(); 
    }); 
}); 

後,我搬到了jQuery的1.11.3.2 瀏覽器每當我點擊「.clickme」按鈕時會凍結,並要求我阻止掛起時間過長的腳本(jquery)。

我不得不刪除可見狀態以避免瀏覽器掛:

$(document).ready(function() { 
    $(".clickme").click(function(){ 
     $("#menu").toggleClass("fixed"); 
     $("#panel").slideToggle(); 
    }); 
}); 

問題是我需要檢查#panel元素的可見性。

元素#panel默認狀態爲顯示:無

問題存在於所有的瀏覽器,我可以檢查。

回答

1

第一個例子幾乎是正確的,不同之處在於你將一個布爾值(從.is())放入一個jQuery對象中。該布爾值需要直接作爲toggleClass方法的參數。試試這個:

$(".clickme").click(function(){ 
    $("#menu").toggleClass("fixed", $("#panel").is(":visible")); 
    $("#panel").slideToggle(); 
}); 

More info on toggleClass()

+0

羅裏嗨,你的建議是工作的罰款。我可以問問你爲什麼升級前工作嗎? (這是一個WordPress的網站)。看這裏,以前的版本:http://greenparkmadama.it/該腳本是http://greenparkmadama.it/wp-content/themes/greenparkmadama/js/greenparkmadama.js?ver=0.7第21行 – bluantinoo

+0

老實說,我不知道。它真的不應該是。這可能是一個固定的錯誤。我沒有檢查版本說明以查看版本之間的變化。 –

+0

這很奇怪!此外,情況是錯誤的:我需要檢查它是否隱藏,而不是如果它是可見的!我在2年前製作了這個劇本,並且一直工作到現在。如癡如醉! ;)無論如何非常感謝 – bluantinoo

相關問題