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

直接的业务:

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

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

和回调函数:

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

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

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

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

先感谢您!

处理这个问题的干净方法是返回一个函数:

 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值的回调