Часто нам хочется передать параметры в функцию, привязанную к элементу через addEventListener. Однако, в addEventListener нет встроенной возможности для этого. В уроке разбираются способы передачи параметров и связанные с этим проблемы.
Исходники кода
<input id="input">
var input1 = document.querySelector('#input1');
input1.addEventListener('blur', func('!'));
var input2 = document.querySelector('#input2');
input2.addEventListener('blur', func('!!'));
function func(message) {
alert(this.value + message);
}
<input id="input">
var input = document.querySelector('#input');
input.addEventListener('blur', function() {
func('!', this);
});
function func(message, self) {
alert(message);
console.log(self.value);
}
<input id="input">
var input = document.querySelector('#input');
input.addEventListener('blur', func('!'));
function func(message) {
return function() {
alert(message);
console.log(this.value);
}
}
<input id="input">
var input = document.querySelector('#input');
input.addEventListener('blur', func.bind(input, '!'));
function func(message) {
alert(message);
console.log(this.value);
}