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))