Собственно вопрос:
Как мне добавить новый метод к прототипу события (ака event)? Причём не на момент его получения, а до. Тоесть я должен получать событие с уже определённым мной методом.
Если непонятно написал, не серчайте, покажу кодом
Спустя 1 час, 11 минут, 8 секунд (23.08.2011 - 09:27) ApuktaChehov написал(а):
Если я правильно понял, то вот в чем дело.
По моему, событие не существует до своей инициализации. Проще говоря, пока браузер не даст команду, что что-то случилось, события не произойдет.
Я думаю, что тут можно воспользоваться оберткой. Т.е. создать функцию, в которую будет передаваться любые события. Функция при создании события добавит к нему новый метод и вернут это событие с новоиспеченным методом.
Вот пример кода.
Вот как то так.
По моему, событие не существует до своей инициализации. Проще говоря, пока браузер не даст команду, что что-то случилось, события не произойдет.
Я думаю, что тут можно воспользоваться оберткой. Т.е. создать функцию, в которую будет передаваться любые события. Функция при создании события добавит к нему новый метод и вернут это событие с новоиспеченным методом.
Вот пример кода.
function myEvn(event){
//Событие
var evn = (event)? event : window.event;
evn.new_method = function(a){
alert(a);
}
return evn;
}
function test(evn){
evn.new_method("РАБОТАЕТ!!!")
}
<div onclick="test(myEvn(event));">Нажми!</div>
Вот как то так.
Спустя 24 минуты, 21 секунда (23.08.2011 - 09:52) kirik написал(а):
Цитата (ApuktaChehov @ 23.08.2011 - 02:27) |
По моему, событие не существует до своей инициализации. |
Должен ведь существовать базовый класс события..
Цитата (ApuktaChehov @ 23.08.2011 - 02:27) |
Я думаю, что тут можно воспользоваться оберткой. |
Была такая идея, но проблема в том, что когда вешаешь на элемент событие через сам JS, ты не можешь вклиниться так как ты показал.
Можно конечно и тут обёртку сделать, но тогда у вызываемой функции изменится контекст, и уже нельзя будет через this обратиться к элементу, который вызвал это событие. Может есть возможность изменить контекст (ещё не гуглил по этому поводу)? Тогда можно обойтись и обёрткой.
Спустя 2 часа, 19 минут (23.08.2011 - 12:11) ApuktaChehov написал(а):
kirik - честно говоря, я ничего не понял.
Спустя 22 минуты, 4 секунды (23.08.2011 - 12:33) kirik написал(а):
ApuktaChehov
Я уж спать ухожу, завтра подробнее распишу)
Я уж спать ухожу, завтра подробнее распишу)