Javascript 如何在JS代码中识别按键的输入
我使用以下jQuery代码处理在各种输入标记中按下的键: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
$(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
得到的只是一个函数引用,不管它是如何创建的。它后来用回调(事件)
(或类似的东西)调用它。但我以前试过使用这种方法,但没有成功。因此,感谢您提供了一个好的解决方案。我必须给你这个!非常感谢。好节目。。。