Jquery热键无法通过函数发送值

时间:2017-09-11 09:19:11

标签: javascript jquery hotkeys jquery-hotkeys

我想知道为什么这适用于jquery热键:

$(document).bind('keydown', 'm', dothis);

但这并不是:

$(document).bind('keydown', 'm', dothis(6));

即使这样也不起作用:

$(document).bind('keydown', 'm', dothis());

2 个答案:

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