Передача параметра в обработчик событий - PullRequest
0 голосов
/ 23 сентября 2018

Я хотел бы использовать этот обработчик событий для запуска функции, передающей эти параметры.

$('#checkingDeposit').on('click', { amount: 100, account: 'savings' }, bank.deposit);


deposit: function(event, amount, account) {
  console.log('deposit running');
  console.log(event.data);   //object of key value pairs
  console.log(event.data.account);    //output 'savings'
  console.log(event.data.amount); //output 100
  this[event.data.account] += event.data.amount;
  console.log(this[event.data.account]);  //NaN
  return this[event.data.account];
}

Получаю ли я NaN, когда пытаюсь console.log this[event.data.account], потому что пытаюсь передать строку (то есть «экономия») на этот объект?

Заранее спасибо Брэд

1 Ответ

0 голосов
/ 23 сентября 2018

Вы должны передать функцию или ссылку на функцию в выражение привязки события, поэтому, если вам нужно передать аргументы, вы можете обернуть фактический вызов функции (с параметрами) в анонимную функцию и передать его в выражение привязки события.

let bank = {
  deposit:50
};

$('#checkingDeposit').on('click', function(event) {
  deposit(event, {amount:100, account:'savings'}, bank.deposit)
});
    
    
function deposit(event, obj, account){
  console.log('deposit running');
  console.log(obj.account);    //output 'savings'
  console.log(obj.amount); //output 100
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button" id="checkingDeposit">Deposit</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...