2014-04-15 58 views
0

我試圖使用jQuery改變一些CSS當屏幕超過一定尺寸(基本上較小的「部分工作」,這是一個重新實施的「@media屏幕(最大寬度:1,024 )「,但我的印象是,這不適用於舊版本的IE,我需要它)。的jQuery在IE

這是工作在所有的瀏覽器,但IE(諷刺)。它在IE中是「部分」工作的(所以它沒有像jQuery沒有正確安裝那樣的超級基礎)。一些CSS得到正確更改。其他部分似乎根本沒有改變...但是當我在控制檯上吐出數值時,它們看起來會改變。

下面是代碼:

$(window).resize(function() { 
     if ($(window).width() <= 1154) { 
      $(".a").css("display", "none"); 
      $(".b").css("right", "0px"); 
     } else { 
      $(".a").css("display", "inline"); 
      $(".b").each(
       function (itemIndex, item) { 
        var a = $(item).parents(".c").children(".a"); 
        $(item).css("right", a.css("width")); 
       } 
      ); 
     } 
    }); 

的想法是,當屏幕小,隱藏類的「一」的元件,並且調整的「B」類的元件(它們將的「左一個「元素,也是他們的兄弟姐妹,都屬於」c「類的元素),以便它們佔據」a「所在的空間。

「A」的元素在所有瀏覽器中正確隱藏。在IE的某些版本中(9和更早版本我認爲),「b」元素的正確屬性設置不正確,並且看起來根本沒有改變。但是,如果我每次更改元素ID(每個「b」都有一個唯一的ID)和正確的屬性,我會得到一些意想不到的結果。首先,調整似乎每次我改變屏幕尺寸時(使用最大化/取消最大化按鈕)被調用兩次,這我假設是,只是因爲多個事件被解僱出於某種原因,也許不是一個大問題。奇怪的是,當我縮小屏幕時,設置後「實際」的實際值顯示爲0兩次。當我使屏幕變大時,「右」的實際值在第一次顯示爲0,在第二次顯示爲180(見下文)。但網頁上顯示,正確的價值總是看起來像180和永不0

setting b0 right=0px ... Actual value: 0px 
setting b0 right=0px ... Actual value: 0px 
setting b0 right=180px ... Actual value: 0px 
setting b0 right=180px ... Actual value: 180px 
setting b0 right=0px ... Actual value: 0px 
setting b0 right=0px ... Actual value: 0px 
setting b0 right=180px ... Actual value: 0px 
setting b0 right=180px ... Actual value: 180px 

還應該提到的,如果我檢查的HTML標籤中的「右」性質,它總是說180(勿庸置疑)。

感謝您的幫助!

+0

您正在使用哪個jQuery版本?雖然我沒有進一步調查,但也許有助於知道「jQuery 2.x與jQuery 1.x具有相同的API,但不支持Internet Explorer 6,7或8」 – conceptdeluxe

+0

最後我知道,我們使用jQuery 1.6雖然很高興知道! – Reyan

+0

你可以爲它創建一個http://jsfiddle.net/嗎?它可以幫助我或其他人來幫助你:) – conceptdeluxe

回答

0

正如我希望根據我的意見,你可以真正解決你的問題,我會鞏固他們對這樣的回答:

雖然你已經提供了詳細的說明和相應的代碼片段,您的問題,您的問題可能是還提供了例如一個JSFiddle - 這是一個非常好的做法作爲一個需要隔離的相關組件的具體問題。至少這是讓其他人輕鬆訪問它並提供幫助的好方法。然後你可以保存你的JSFiddle,並在你的SO問題上發佈永久鏈接。

至於實際的話題:

當庫它始終是一個很好的起點,檢查不兼容關於各自的目標平臺(S)工作 - 瞄準的東西很舊版本和特別是當更當它是關於Internet Explorer

因此,它是使用jQuery - 在他們的網頁上爲說: 「jQuery的2.x中有相同的API爲jQuery的1.x中,但不支持Internet Explorer 6,7或8」。雖然這不是這個問題的原因,但它可能是這樣的。

當你在代碼上擺弄時,發現實際的問題似乎是特定的IE CSS表達式 - 所以請允許我注意,在我看來,應儘可能避免使用CSS表達式。他們是已棄用自IE8以來,不再支持。很多人在安全性和性能方面都被認爲是壞主意