2017-09-11 75 views
0

我不知道送价值,为什么这个工程使用jQuery热键:Jquery的热键不能与功能

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

但这并不:

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

即使这样也不行:

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

绑定事件接受回调函数而不是函数的结果 – madalinivascu

+0

那么解决方案是什么?你只能使用没有值的函数? – Hasen

+1

'dothis'提供每次事件发生时都会运行的函数* reference *。 'dothis()'仅在定义事件处理程序时提供函数的* result *。 –

回答

2

你必须给一个功能的结合作为参数

在第二和第三种情况下,你都给人一种函数调用得到评价,并返回值是考虑到热键绑定功能 - 想必你不回的功能和什么也不做。

如果你想建立与你已经有一个功能集参数的新功能,使用bind

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

+0

非常感谢。 – Hasen

0

您还可以使用咖喱功能。它的函数返回函数。

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

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