Обработчик через свойство (вопрос)
Есть функция:
var i=0;
function light() {
if (i<4) {
document.getElementsByTagName('a')[1].className += " redtext" + i;
i += 1;
t = setTimeout("light()", 50);
}
Прибавляет классы стиля по порядку после "onmouseover". Работает на ура. Решил вынести обработчик из html в js, как понял через свойство. Но элемент будет искаться и функция будет запускаться только после "window.onload" (или, если js после html - что не вариант). Дошёл до этого:
var i=0;
if (window.onload) {
document.getElementsByTagName('a')[1].onmouseover = function light() {
if (i<4) {
document.getElementsByTagName('a')[1].className += " redtext" + i;
i += 1;
t = setTimeout("light()", 50);
}
}
}
- не арбайтен... Неужели опять что-то проглядел? |
как минимум, неправильно используете обработчик события загрузки страницы :
window.onload = function(){
var i = 0,
light = function() {
if (i<4) {
document.getElementsByTagName('a')[1].className += " redtext" + i;
i += 1;
t = setTimeout(light, 50);
}
};
document.getElementsByTagName('a')[1].onmouseover = light;
}
|
light is not defined....
но вопрос ещё один, смогу ли я в таком виде поставить на этот элемент ещё один обработчик? |
Отлично, работает)
Только я поставил document.getElementsByTagName('a')[1].addEventListener( "mouseover", light, false); вместо document.getElementsByTagName('a')[1].onmouseover = light; Так правильнее? |
Цитата:
Цитата:
window.onload = function(){
var i = 0,
ie = '\v'=='v',
el = document.getElementsByTagName('a')[1],
light = function() {
if (i<4) {
document.getElementsByTagName('a')[1].className += " redtext" + i;
i += 1;
t = setTimeout(light, 50);
}
};
ie ? el.attachEvent('onmouseover', light):el.addEventListener('mouseover', light, false);
}
|
Спасибо, melky
Всё заработало. Правда, код не до конца понятен, но тем лучше, получше поразбираюсь в регулярных выражениях. |
их там нет, там сплошной DOM.
|
melky,
На всякий случай Особенности attachEvent Цитата:
|
Цитата:
три часа ночи :) |
| Часовой пояс GMT +3, время: 05:09. |