Javascript Jquery热键可以';t使用函数发送值

Javascript Jquery热键可以';t使用函数发送值,javascript,jquery,hotkeys,jquery-hotkeys,Javascript,Jquery,Hotkeys,Jquery Hotkeys,我想知道为什么jquery热键会起作用: $(document).bind('keydown', 'm', dothis); 但这并不是: $(document).bind('keydown', 'm', dothis(6)); 即使这样也不行: $(document).bind('keydown', 'm', dothis()); 必须为绑定提供一个函数作为参数 在第二种和第三种情况下,您将给出一个函数调用,该调用将被计算,返回的值将被提供给keybind函数——假设您不返回函数,而该函

我想知道为什么jquery热键会起作用:

$(document).bind('keydown', 'm', dothis);
但这并不是:

$(document).bind('keydown', 'm', dothis(6));
即使这样也不行:

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

必须为绑定提供一个函数作为参数

在第二种和第三种情况下,您将给出一个函数调用,该调用将被计算,返回的值将被提供给keybind函数——假设您不返回函数,而该函数什么也不做

如果要从现有函数构造具有设置参数的新函数,请使用:


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

必须为绑定提供一个函数作为参数

在第二种和第三种情况下,您将给出一个函数调用,该调用将被计算,返回的值将被提供给keybind函数——假设您不返回函数,而该函数什么也不做

如果要从现有函数构造具有设置参数的新函数,请使用:


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

您也可以使用curried函数。返回函数的函数

function doThis (num) {
  return function () {
    // Do something with num
  }
}

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

您也可以使用curried函数。返回函数的函数

function doThis (num) {
  return function () {
    // Do something with num
  }
}

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

绑定事件接受回调函数而不是函数的结果那么解决方案是什么?您只能使用没有值的函数?
提供每次事件发生时运行的函数引用
dothis()
仅在定义事件处理程序时提供函数的结果。绑定事件接受回调函数而不是函数的结果。那么解决方案是什么?您只能使用没有值的函数?
提供每次事件发生时运行的函数引用
dothis()
仅在定义事件处理程序时提供函数的结果。