Передача кастомных данных в событие и удаление обработчика
У 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, время: 19:20. |