在 jquery 单击事件中将参数传递给回调函数

Pass arguments to a callback function in jquery click event

直奔主题:

我有一个 jquery 事件侦听器,如下所示:

$(".number").click(printNumber);

和一个回调函数:

function printNumber(number){
   console.log(number);
}

我想知道我是否可以将参数传递给回调,这样它看起来像这样

$(".number").click(printNumber(number));

(我知道它会立即调用该函数,但仍然有办法向它传递参数)

提前致谢!

处理这个问题的简洁方法是return一个函数:

function printNumber(number) {
   return function(e) {
       console.log(number);
   };
}

然后使用:

$(".number").click(printNumber(number));

您可以在 jQuery

中将数据直接传递给回调 event.data
$(".number").on('click', {number : 4}, printNumber);

function printNumber(event){
   console.log(event.data.number); // 4
}

另一种方法是使用 bind

$(".number").click(printNumber.bind($, 4));

function printNumber(number, event){
   console.log(number); // 4
}

但这也会改变回调 this