IE7 и setAttribute () для удаления классов - PullRequest
2 голосов
/ 24 июня 2011

У меня довольно интересная проблема. Я пишу плагин, который позволяет увеличивать / уменьшать изображение. У меня есть 3 кнопки: закрыть (закрыть «окно»), увеличить, уменьшить. Кнопки увеличения / уменьшения также имеют отключенные версии. Активируется при достижении минимального / максимального значения увеличения.

Если открыть изображение для увеличения, вы увидите активную кнопку уменьшения и отключенную кнопку увеличения (поскольку я установил максимальное значение при открытии). При первом нажатии на кнопку уменьшения масштаба кнопка увеличения масштаба изображения должна избавить от отключенного класса. Он отлично работает в Safara, Chrome, Firefox 3.6 / 4/5, IE8, но не в IE7.

Кнопка увеличения имеет идентификатор и классы, и я хочу заставить IE7 удалить определенные классы из элемента. Сначала я использовал removeClass (), но это не сработало. Затем я использую setAttribute (), который работает в любом браузере, кроме IE7.

Вот пример. Таким образом, когда вы открываете изображение для увеличения, кнопка уменьшения масштаба имеет ID = "zoom-button-in" и 5 классов: zoom-icon, zoom-icon-small, zoom-button-in, zoom-button-disabled, отключено, зум-кнопка-инвалиды в. И я хочу удалить 2 «отключенных» класса. Поэтому я использую это:

var elementZoomButtonIn = document.getElementById("zoom-button-in");
elementZoomButtonIn.setAttribute("class", "zoom-icon zoom-icon-small zoom-button-in");

Я пытался установить класс пустым, прежде чем вставлять не отключенные классы, но не сработало.

Этот метод работает в IE7? (-:

Спасибо, ребята!

1 Ответ

6 голосов
/ 24 июня 2011

setAttribute() и getAttribute() обычно не работают в IE 7 и более ранних версиях (и в режимах совместимости в более поздних версиях). Вместо этого используйте свойство элемента className:

elementZoomButtonIn.className = "zoom-icon zoom-icon-small zoom-button-in";

Даже если setAttribute() и getAttribute() не были разбиты в IE, все равно в целом проще и надежнее использовать эквивалентные свойства DOM.

...