我試圖使用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(勿庸置疑)。
感謝您的幫助!
您正在使用哪個jQuery版本?雖然我沒有進一步調查,但也許有助於知道「jQuery 2.x與jQuery 1.x具有相同的API,但不支持Internet Explorer 6,7或8」 – conceptdeluxe
最後我知道,我們使用jQuery 1.6雖然很高興知道! – Reyan
你可以爲它創建一個http://jsfiddle.net/嗎?它可以幫助我或其他人來幫助你:) – conceptdeluxe