Упрощенный пример:
CODE ( javascript):
скопировать код в буфер обмена
var array = ['name', 'email', 'phone']; $.each(array, function (i, v) { form.find("input[name=" + v + "]").addClass("error").on("change", function () { $(this).removeClass("error"); /* удалить это событие */ }); });
В отличии от примера array приходит через ajax и $.each внутри замыкания. А помимо обработчика который я вешаю input, там уже есть и другие обработчики в том числе и на on change.
Подскажите, как удалить конкретный обработчик с конкретного события?
Нужно чтобы обработчик сработал 1 раз, а потом был удалён, но другие обработчики для данного события остались не тронутыми. Было бы круто удалить обработчик прямо изнутри после срабатывания.
Отключить через замыкания используя логическую переменную не подходит, тк это делается не потому, что событие мешает, а потому, что события копятся тк вешаются через ajax кучами и как итог страница может начать тормозить.(Отредактировано автором: 24 Июня, 2016 - 17:27:16)
|