(文档)$。就绪(()的函数 { var test_func = function(ev) { 警报(ev.keyCode); }; .... (文档)$ .keydown(test_func(EV)); });
我想做下一个,如果我按下键盘上的某些按钮,我会看到警告,我按下了一个按键代码。但我发现在我的firebug = |
中只有“ev未定义”您如何看待这个?
答案 0 :(得分:3)
它应该看起来像这样(调用中没有参数):
$(document).keydown(test_func);
该事件将作为第一个参数传递,您可以使用ev.which
,因为jquery会在浏览器中对此进行规范化处理:)
当您调用这样的函数时,您希望将函数本身作为事件发生时调用的函数传递,因此请使用method
。如果您使用method(something)
,它会尝试调用方法然后(使用变量ev
,它无法找到)并分配结果该方法作为事件处理程序,而不是方法本身。
您也可以使用匿名方法,如下所示:
$(function() {
$(document).keydown(function(e) {
alert(e.which);
});
});