将参数传递到事件处理程序中

时间:2018-09-22 21:34:43

标签: javascript jquery object

我想使用此事件处理程序来运行传入这些参数的函数。

$('#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];
}

我尝试console.log this[event.data.account]时是否得到NaN,因为我试图将字符串(即“储蓄”)传递给此对象?

预先感谢 布拉德

1 个答案:

答案 0 :(得分:1)

必须将函数或函数引用传递给事件绑定表达式,因此,如果需要传递参数,可以将实际的函数调用(带有参数)包装在匿名函数中,然后将其传递给事件绑定表达式。 / p>

exWord = "++"
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
}