为什么jquerykeydown适用于窗口而不适用于文本框?

为什么jquerykeydown适用于窗口而不适用于文本框?,jquery,Jquery,为什么这样做有效: $(window).keydown(function(event){ alert(event.keyCode); }); 但不是这个: $('#ajaxSearchText').keydown(function(event){ alert(event.keyCode); }); 我正在用Firefox3进行测试。 有趣的是,它们都不适用于IE7。尝试使用 $('#ajaxSearchText').keyup(function(event){ ale

为什么这样做有效:

$(window).keydown(function(event){
    alert(event.keyCode);
});
但不是这个:

$('#ajaxSearchText').keydown(function(event){
    alert(event.keyCode);
});
我正在用Firefox3进行测试。 有趣的是,它们都不适用于IE7。

尝试使用

$('#ajaxSearchText').keyup(function(event){
    alert(event.keyCode);
});

这对我很有用。还要检查文本区域的id,在Chrome、IE7和Firefox 3.0.3中检查此项。它本该起作用的。jQuery版本1.2.6

<html> 
  <head> 
    <script type="text/javascript" src="jquery-1.2.6.js"></script> 
    <script type="text/javascript"> 
      $(function() 
      {
        $("#ajaxSearchText").keydown(function(event)
        {
          alert(event.keyCode);
        });
      });
    </script> 
  </head> 
  <body> 
    <input type="text" id="ajaxSearchText"></input>
  </body> 
</html> 

$(函数()
{
$(“#ajaxSearchText”).keydown(函数(事件)
{
警报(事件键码);
});
});

对于所有的按键/上键/键盘需要,请使用jQuery热键插件

几个月前看到这一点,它总是给人留下深刻印象。跟随插件演示的跳转


它映射键盘上的所有键,包括组合键。希望有帮助

要解决IE6和IE7中的问题,请尝试以下

$(function() 
{
    $(document).keydown(function(event){
        alert(event.keyCode);
    });
});
将事件附加到
$(文档)
似乎是这里的神奇之处

不过,您的第一段代码也应该在IE中工作。这似乎是由于jQuery中的一个bug,希望很快就能修复


这里是jQuery中bug报告的链接

因为“窗口”对象不支持键事件

但仅在“文件”上:

如果它曾经工作过,那么它就是jQuery中的一个bug

$('#searchInput').keydown(function() {
    alert('testing');
});
这是行不通的。但是,如果将其包装在函数中:

$(function()
{
    $('#searchInput').keydown(function() {
        alert('testing');
    });
});
它会起作用的


如果没有函数声明,它只适用于文档和窗口等对象。

建议:提供尽可能小的自包含示例来说明您的问题。此错误报告以“非错误”结束,因为“窗口”不支持关键事件。另请参阅此处:我将添加一条注释,以帮助任何像我这样偶然发现此问题的人。在jQuery 1.4.2及更高版本上运行的这个插件的版本在这里:jQuery已经具备了回答这个问题所需的一切,一个插件并没有真正的帮助。对不起,这是完全错误的。请告诉我们如何轻松地使用本机jQuery捕获ctrl+alt+del。如果您使用ascii/密钥代码,您已经丢失了。。。