Передача кастомных данных в событие и удаление обработчика
У jQuery есть такие методы, как on и off.
Частный случай первого: $(nodes).on('click', {valera: 5}, handler); В handler мы можем получить свойство valera: function handler (event) { log(event.data.valera); //5 } Затем можем удалить обработчик handler: $(nodes).off('click', handler);Удаляется. -------------- Передачу данных в событие можно организовать следующим образом (по-другому не знаю как) (данные должны быть обязательно в ивенте, как описано выше!) function addListener(element, event, data, handler) { element.addEventListener(event, function(event){ event.data = data; handler.apply(this, arguments); }); }То есть приходится передавать обработчику совершенно другую функцию. addListener(div, 'click', {valera: 5}, handler); function removeListener(node, event, handler) { // ??? } Как теперь удалить этот новый обработчик, передав аргументом старый? removeListener(div, 'click', handler); В jQuery как-то это замудренно сделано. (вопрос вполне касается "общих вопросов") |
http://javascript.ru/tutorial/events...e-obrabotchika
Читали? Там достаточно хорошо описана библиотека для добавления событий. Допилить до передачи кастомных данных - не должно составить особого труда |
Часовой пояс GMT +3, время: 07:35. |