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

时间:2016-01-08 20:00:42

标签: javascript jquery callback jquery-callback

直接开展业务:

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

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

和回调函数:

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

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

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

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

提前谢谢!

2 个答案:

答案 0 :(得分:13)

处理此问题的简洁方法是返回一个函数:

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

然后使用:

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

答案 1 :(得分:8)

您可以直接将数据作为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

相关问题