Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Подключение событий в onload и определение их типа (https://javascript.ru/forum/events/3174-podklyuchenie-sobytijj-v-onload-i-opredelenie-ikh-tipa.html)

anstm 24.03.2009 18:14

Подключение событий в onload и определение их типа
 
У тега <body onload="..."> в onload вызывается такой код:
var obj = document.getElementById('myObjId');
addEvent(obj, 'keypress', function () { eventType(event); });

функции описаны в подключаемом файле:

function addEvent(obj, name, func) {
if (obj.addEventListener) {
obj.addEventListener(name, func, false);
} else if (obj.attachEvent) {
obj.attachEvent('on' + name, func);
} else {
throw 'Error';
}
}

function eventType(e) {
if (!e) {
var e = window.event;
}
alert(e.type);
}

Есть элемент <input id="myObjId" type="text" />

При вводе в инпут вызывается функция eventType(e) (как и должно быть), но тип эвента возвращается load (тоже понятно почему).

Вопрос - есть ли такое решение, чтобы возвращалось именно "нужное" событие, подключаемое в addEvent(obj, 'keypress', function () { return eventType(event); });? Т.е. в данном случае - onkeypress. Интуитивно понятно, что виной всему здесь параметр event в eventType(event).

Tracker 07.04.2009 14:47

DOM еще полностью не создан. Элемент не существует.

Riim 07.04.2009 15:20

addEvent(obj, 'keypress', function (event) { eventType(event); });

или

addEvent(obj, 'keypress', eventType);


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