Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   и снова IE (не работает смена style) (https://javascript.ru/forum/dom-window/3928-i-snova-ie-ne-rabotaet-smena-style.html)

lvil 06.06.2009 22:39

и снова 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;
}

вопрос:
в файрфоксе работает и алерт и красный цвет,
в эксплорере только алерт

что делать???


спасибо

Riim 06.06.2009 22:55

id не должен начинаться с цифры

lvil 07.06.2009 09:12

1. поменял, не помогло.
2. алерт работает и там и там, значит объект находится и ему нормально присваивается listener

Riim 07.06.2009 11:54

Кроме attachEventListener есть еще attachEvent .
http://javascript.ru/tutorial/events/crossbrowser

Octane 07.06.2009 14:05

Цитата:

Сообщение от Riim (Сообщение 21095)
Кроме attachEventListener есть еще attachEvent .
http://javascript.ru/tutorial/events/crossbrowser

У него просто пользовательская функция attachEventListener, а не метод addEventListener

lvil 07.06.2009 17:41

ага. он самый.

Riim 07.06.2009 17:50

У меня и в IE6 и в IE7 все сразу заработало.

Octane 07.06.2009 17:55

В IE, при использовании метода attachEvent, обработчик вызывается в контексте window, поэтому, если ваша функция attachEventListener не умеет запоминать контекст, то будет следующее:
this.className = "red";

равносильно:
window.className = "red";

просто создается и инициализируется свойство className объекта window.

В статье по ссылке, которую указал Riim, есть примеры и объяснение того, как действовать в этой ситуации.

twolf 09.06.2009 13:42

Цитата:

Сообщение от Riim (Сообщение 21085)
id не должен начинаться с цифры

спорили мы тут с кем-то, уже не помню с кем.
По спецификации это именно так, а в реальности хоть id начинается, хоть состоит из цифр - все равно браузеры нормально отрабатывают.
Но это не значит, что id теперь можно называть как хочешь, пост просто для информации.

Kolyaj 09.06.2009 15:00

В Google(Reader|Mail) id-шники с : начинаются. Достаточно грамотное решение получается. И с цифрами проблем нет.

x-yuri 09.06.2009 16:21

Цитата:

спорили мы тут с кем-то, уже не помню с кем
http://javascript.ru/forum/events/32...html#post15796

Цитата:

В Google(Reader|Mail) id-шники с : начинаются. Достаточно грамотное решение получается
а грамотность в чем?

Kolyaj 09.06.2009 16:37

В ИЕ id-шники не попадают в глобальную область видимости.


Часовой пояс GMT +3, время: 02:04.