Задать вопрос
scriptroom
@scriptroom
Front-end Web Developer

Как используя addEventListener передать параметр в функцию?

element.addEventListener('click', someFunk);
Как передать параметры в функцию someFunk?
  • Вопрос задан
  • 33872 просмотра
Подписаться 7 Оценить Комментировать
Решения вопроса 1
@alexeyproject
// Вариант 1. Привязываем контекст и первые по порядку параметры
function someFunk(a, b, event) {
	console.log(a, b, event);
}
element.addEventListener('click', someFunk.bind(null, 1, 2));

// Вариант 2. Используем интерфейс EventListener
function someFunk(event) {
	console.log(this.a, this.b, event);
}
element.addEventListener('click', {handleEvent: someFunk, a: 1, b: 2});
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@uroot
Немного дополню спустя 3 года... В ES6 можно так:

element.addEventListener('click', () => someFunk(param))
Ответ написан
@DangerPNZ
А ещё вот так:

var someFunk = function(param1, param2) {
   return function (event) { // event по необходимости
      console.log(param1 + ' ' + param2);
   };
};
element.addEventListener('click', someFunk('Коллбек с доступным event', 'и аргументами'));
Ответ написан
fsdsdfsfdsfsdfsdfsdfsdfsd
@fsdsdfsfdsfsdfsdfsdfsdfsd
Unknown
element.addEventListener('click', function() {
 someFunk(...);
}, false);
Ответ написан
Комментировать
@Miras222
Начинающий фронтенд-разработчик
Долго не мучаясь можно сделать так:
function someFunk(arg1, arg2, arg3) {
    arg1.addEventListener('click', function(){
     .....
});
}

function wtoTo() {
    someFunk(arg1, arg2, arg3);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы