не работает: удалить атрибут стиля или изменить свойство width \ height css с помощью jquery в IE6 \ IE7 \ IE8 - PullRequest
0 голосов
/ 20 июня 2011

Как удалить атрибут стиля или изменить свойство CSS ширины \ высоты через jQuery в IE6 \ IE7 \ IE8?

Не работает:

$(e).css({'width': '', 'height': ''});
$(e).removeAttr('style');
e.removeAttribute('style');

Обновление:

e является нативным объектом DOM.Firebug скажи мне, что элемент существует

В первой функции я добавляю width \ height, во втором удалить.

в другом браузере все ок

Не работает:

$(e).css({'width': 'auto', 'height': 'auto'});

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Я думаю, вы хотите установить свойства width и height в их "начальное значение".

Начальное значение для обоих свойств - auto, поэтому это будет работать:

$(e).css({
    'width': 'auto',
    'height': 'auto'
});

Я протестировал это в IE6, и он работает как положено: http://jsfiddle.net/BNrgF/

0 голосов
/ 20 июня 2011

Итак, вы хотите установить ширину и высоту обратно в соответствии с тем, что определено в CSS?

Теоретически, то, что вы делаете, должно работать (если нет каких-либо специфических для jquery проблем, о которых я не знаю), но я думаю, что IE не примет пустую строку в качестве допустимого значения и может оставить значение без изменений.

Самый надежный способ сделать это - сохранить исходное значение перед первым изменением (если это не общий эффект, который должен применяться к неопределенному количеству элементов, это не должно быть слишком сложно) и установите его обратно в это значение вместо очистки.

Если исходное значение является вычисленным значением, таким как процент (от ширины экрана и т. Д.), Вам, возможно, придется пересчитать его или установить в процентном значении жесткого кода, поскольку вы не сможете получить исходное значение CSS, только рассчитанное значение пикселя.

...