直接开展业务:
我有一个jquery事件监听器,如下所示:
$(".number").click(printNumber);
和回调函数:
function printNumber(number){
console.log(number);
}
我想知道我是否可以将参数传递给回调,因此它看起来像这样
$(".number").click(printNumber(number));
(我知道它会立即调用该函数,但仍然有办法将参数传递给它)
提前谢谢!
答案 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
值