Jquery 热键无法通过功能发送值
Jquery hotkeys can't send value with function
我想知道为什么这适用于 jquery 热键:
$(document).bind('keydown', 'm', dothis);
但这不是:
$(document).bind('keydown', 'm', dothis(6));
即使这样也不行:
$(document).bind('keydown', 'm', dothis());
您必须给绑定一个函数作为参数。
在第二种和第三种情况下,你给出了一个 函数调用 ,它得到了评估,并且 returned 值被赋予了键绑定函数 - 大概你这样做了不是 return 一个什么都不做的函数。
如果您想使用已有函数的设置参数构造新函数,请使用 bind:
$(document).bind('keydown', 'm', dothis.bind(null, 6));
你也可以使用柯里化函数。它的功能是returns函数。
function doThis (num) {
return function () {
// Do something with num
}
}
$(document).bind('keydown', 'm', dothis(6))
我想知道为什么这适用于 jquery 热键:
$(document).bind('keydown', 'm', dothis);
但这不是:
$(document).bind('keydown', 'm', dothis(6));
即使这样也不行:
$(document).bind('keydown', 'm', dothis());
您必须给绑定一个函数作为参数。
在第二种和第三种情况下,你给出了一个 函数调用 ,它得到了评估,并且 returned 值被赋予了键绑定函数 - 大概你这样做了不是 return 一个什么都不做的函数。
如果您想使用已有函数的设置参数构造新函数,请使用 bind:
$(document).bind('keydown', 'm', dothis.bind(null, 6));
你也可以使用柯里化函数。它的功能是returns函数。
function doThis (num) {
return function () {
// Do something with num
}
}
$(document).bind('keydown', 'm', dothis(6))