[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Прототипирование событий
kirik
Гр*баный JS фреймворк Prototype всю малину выдачу в гугле портит..
Собственно вопрос:
Как мне добавить новый метод к прототипу события (ака event)? Причём не на момент его получения, а до. Тоесть я должен получать событие с уже определённым мной методом.

Если непонятно написал, не серчайте, покажу кодом smile.gif



Спустя 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 - честно говоря, я ничего не понял. sad.gif

Спустя 22 минуты, 4 секунды (23.08.2011 - 12:33) kirik написал(а):
ApuktaChehov
Я уж спать ухожу, завтра подробнее распишу)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.