Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Удалить обработчик с вложенной функцией (https://javascript.ru/forum/misc/68673-udalit-obrabotchik-s-vlozhennojj-funkciejj.html)

TommyWork 01.05.2017 22:15

Удалить обработчик с вложенной функцией
 
Здравствуйте.

Если я хочу в свою функцию передать событие или просто переменные, то я пишу так:
//---------- Это в отдельном файле js подключается в head страницы
main_elem.addEventListener('mousedown' function(e) {
first(e);
});
main_elem.removeEventListener('mouseup' Myfunction);
//--------------------------------------------------------------------------------

// А это вложенный js тоже в head страницы------------------------------
function first(e) {
e = e || event;
elem.addEventListener('mousemove', function(e){
myFunction(e);
});
}

Причем если в функции не передавать (e) то например фаерфокс не понимает его внутри функции.

В моем примере происходит событие "mousedown", это событие порождает новое событие - "mousemove", когда же произойдет событие "mouseup", событие "mousemove" надо прекратить. Можно ли это сделать иначе? Если нет, то вопросы ниже.

Вопрос как такие обработчики удалять через removeEventListener(). Если его формат:
elem.removeEventListener('click', myFunction);
Где myFunction - функция без указания переданных переменных.
И как при создании таких обработчиков передать в функцию параметры помимо (e)?

TommyWork 02.05.2017 15:23

Rise,
Спасибо)


Часовой пояс GMT +3, время: 13:01.