直接的业务:
我有一个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));
您可以像event.data
在jQuery中一样直接将数据传递给回调
$(".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
值