...Есть страница, на ней 10 одинаковых объектов с id btn1, btn2, ... btn10.
Есть привязка к ним обработчика события в цикле:
for (x=1; x<11; x++){ new нечто ('btn'+x); }
Во всех браузерах работает. В Эксплорере тоже. Кроме объекта с id btn10. Переставил этот id на другой объект — перестал работать тот объект.
Переписал на:
for (x=1; x<12; x++)
и убрал 10-й id из объектов вообще, сделал его 11-м: id='btn11'. Так — заработало. Сижу теперь и думаю: видимо, чего-то я не догоняю в Джаваскрипте? А может, не я? Почему операция 'строка'+10 в понимании Эксплорера не даёт результата 'строка10'?
Подписаться на:
Комментарии к сообщению (Atom)
5 комментариев:
Скорее всего идёт какое-то преобразование. Может явно число приводить к строке перед конкатенацией?
Я пробовал. Переписал цикл как:
var s='';
for (x=1; x<11; x++) {
s=''+x;
new blahblah ('btn'+s);
}
...однофигственно.
И объекта с таким же id на странице тоже нет, искал.
Конкатенация строки с 10 даёт с эксплорере строка10 (естественно), проверил. Косяк где-то в DOM. Или, не исключено, косяк в rollover.js - этот скрипт прицепляет событие. Разбирать некогда. Но озадачивает, что проявляется только в Эксплорере. Пробовал ФФ, Оперу, Эпифани, Хром.
Может в DOM два элемента с идентификатором btn10 ?
См. выше: И объекта с таким же id на странице тоже нет, искал.
Отправить комментарий