и снова IE (не работает смена style)
имеется html с внешними javascrןpt&css
в хтмл: ......<table class="table-style" > <tr > <td id="11"></td>.................... в javascript: unction addEventContent() { var tdArray = document.getElementById("11"); attachEventListener( tdArray, "mouseover", mouseoverColor, false); function mouseoverColor() { alert ("Mouseover"); this.className = "red"; } } в css : td.red { background-color: red; } вопрос: в файрфоксе работает и алерт и красный цвет, в эксплорере только алерт что делать??? спасибо |
id не должен начинаться с цифры
|
1. поменял, не помогло.
2. алерт работает и там и там, значит объект находится и ему нормально присваивается listener |
Кроме attachEventListener есть еще attachEvent .
http://javascript.ru/tutorial/events/crossbrowser |
Цитата:
|
ага. он самый.
|
У меня и в IE6 и в IE7 все сразу заработало.
|
В IE, при использовании метода attachEvent, обработчик вызывается в контексте window, поэтому, если ваша функция attachEventListener не умеет запоминать контекст, то будет следующее:
this.className = "red"; равносильно: window.className = "red"; просто создается и инициализируется свойство className объекта window. В статье по ссылке, которую указал Riim, есть примеры и объяснение того, как действовать в этой ситуации. |
Цитата:
По спецификации это именно так, а в реальности хоть id начинается, хоть состоит из цифр - все равно браузеры нормально отрабатывают. Но это не значит, что id теперь можно называть как хочешь, пост просто для информации. |
В Google(Reader|Mail) id-шники с : начинаются. Достаточно грамотное решение получается. И с цифрами проблем нет.
|
Цитата:
Цитата:
|
В ИЕ id-шники не попадают в глобальную область видимости.
|
Часовой пояс GMT +3, время: 02:04. |