在 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
值
直奔主题:
我有一个 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
值