Передача параметров в функцию обработки событий
Доброго времени суток, уважаемые фронтендеры!
Возникло недопонимание с осуществлением возможности передачи параметров в событийную функцию. Ситуация изложена в примере кода. При клике по элементу, обработчик события, соответственно, вызывается в контексте этого элемента. Есть ли способ передавать в этот обработчик значение из переменной someVar и значение свойства this.someParam?
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>
<button class="TestButton" data-test="TestValue">Тестовый клик</button>
<script>
class Test{
constructor(){
this.someParam = '123';
this.elementsome = $('.TestButton');
this.initEvent();
}
// Прикручиваем слушатель событий
initEvent(){
var someVar = 'Test'; // Как передать значение внешней переменной в контексте события клика на элементе (кнопка)
this.elementsome.on('click',function( someVar ){
console.log($(this).data('test')); // Получаем "TestValue"
console.log(someVar); // Сейчас сюда передается некий объект. Предполагалось, что здесь будет значение "Test"
console.log( this.someParam ); // Как получить значение этого свойства при запуске данной функции?
}
);
}
}
new Test();
</script>
Буду примного благодарен за любую инфу! |
Цитата:
Цитата:
Цитата:
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>
<button class="TestButton" data-test="TestValue">Тестовый клик</button>
<script>
class Test{
constructor(){
this.someParam = '123';
this.elementsome = $('.TestButton');
this.initEvent();
}
initEvent(){
var someVar = 'Test';
this.elementsome.on('click', _ => {
console.log(this.elementsome.data('test'));
console.log(someVar);
console.log(this.someParam);
}
);
}
}
new Test();
</script>
|
Ого! ))) Огромное спасибо за столь развёрнутый и содержательный ответ!
Всё получилось! |
ReadyStady,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>
<button class="TestButton" data-test="TestValue">Тестовый клик</button>
<script>
class Test{
constructor(){
this.someParam = '123';
this.elementsome = $('.TestButton');
this.initEvent();
}
// Прикручиваем слушатель событий
initEvent(){
var someVar = 'Test'; // Как передать значение внешней переменной в контексте события клика на элементе (кнопка)
this.elementsome.on('click', {someParam : this.someParam, someVar : someVar},function(event){
console.log($(this).data('test')); // Получаем "TestValue"
console.log(event.data.someVar); // Сейчас сюда передается некий объект. Предполагалось, что здесь будет значение "Test"
console.log( event.data.someParam ); // Как получить значение этого свойства при запуске данной функции?
}
);
}
}
new Test();
</script>
</body>
</html>
|
Хммм, мне определенно нужно перечитать ман по jquery - про второй аргумент с передаваемыми параметрами не слышал :-? . Отличное рабочее решение! Спасибо!!!
|
| Часовой пояс GMT +3, время: 20:10. |