Javascript 如何在JS代码中识别按键的输入

Javascript 如何在JS代码中识别按键的输入,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我使用以下jQuery代码处理在各种输入标记中按下的键: $(document).ready( function () { $("input").keydown(function (e) {processKeys(e);}); ... 它工作得很好 在一个单独的Javascript文件中,我有一个接收事件调用的函数: function processKeys(e) { key=e.which; if (key==27) { $("#searchC

我使用以下jQuery代码处理在各种输入标记中按下的键:

$(document).ready( function () {
    $("input").keydown(function (e) {processKeys(e);});
    ...
它工作得很好

在一个单独的Javascript文件中,我有一个接收事件调用的函数:

function processKeys(e) {
    key=e.which;
    if (key==27) {
        $("#searchCDB").hide();
    }

}
那么,有没有一种方法可以让我在事件层识别导致事件的
标记。。。我的意思是,在某种程度上,比如:

$("input").keydown(function (e) {processKeys($("#this"),e);});
我知道我的尝试是荒谬的,但任何有效的建议都将受到赞赏


DK

您可以将
传递给您的
进程键
功能:

$(document).ready( function () {
    $("input").keydown(function (e) {
        processKeys(e, this);
    });
});

function processKeys(e, obj) {
    console.log(obj.id); //logs ID of keypressed input
    key=e.which;
    if (key==27) {
        $("#searchCDB").hide();
    }

}

演示:

只需传递
(或
$(此)
)。或者,使用
e.target
。你的问题并不荒谬,我只是觉得你想得太多了你可以简化
.keydown(函数(e){processKeys(e);})
.keydown(processKeys)。顺便说一句,您的问题的答案在官方jQuery教程中提供:。@FelixKling这绝对是最有意义的!您可以从事件中读取它,
e.target
e.currentTarget
您没有传递事件。传递回调的函数传递事件。也许这个简单的例子可以帮助您理解:传递一个匿名函数:
.keydown(函数(e){…})或预先定义函数
var foo=function(e){…};元素键控(foo)没有区别。您是否看到这两个函数都定义了
e
参数?
.keydown
得到的只是一个函数引用,不管它是如何创建的。它后来用
回调(事件)
(或类似的东西)调用它。但我以前试过使用这种方法,但没有成功。因此,感谢您提供了一个好的解决方案。我必须给你这个!非常感谢。好节目。。。