我想知道为什么这适用于jquery热键:
$(document).bind('keydown', 'm', dothis);
但这并不是:
$(document).bind('keydown', 'm', dothis(6));
即使这样也不起作用:
$(document).bind('keydown', 'm', dothis());
答案 0 :(得分:2)
您必须为绑定提供函数作为参数。
在第二种和第三种情况下,你给出一个函数调用,它被评估,并且返回的值被赋予keybind函数 - 大概你没有返回一个函数而且什么也没做。< / p>
如果要使用已有函数设置参数的新函数,请使用bind:
$(document).bind('keydown', 'm', dothis.bind(null, 6));
答案 1 :(得分:0)
您也可以使用咖喱功能。它的功能返回功能。
function doThis (num) {
return function () {
// Do something with num
}
}
$(document).bind('keydown', 'm', dothis(6))