为什么JQuery keydown适用于窗口但不适用于文本框?
为什么这样做:
$(window).keydown(function(event){ alert(event.keyCode); });
但不是这个:
$('#ajaxSearchText').keydown(function(event){ alert(event.keyCode); });
我正在使用Firefox 3进行测试。有趣的是,它们都不能在IE7中运行。
在Chrome,IE7和Firefox 3.0.3中查看过此内容。 按预期工作。 jQuery版本1.2.6。
要解决IE6和IE7中的问题,试试这个……
$(function() { $(document).keydown(function(event){ alert(event.keyCode); }); });
将事件附加到$(document)
似乎是这里的神奇事物。
你的第一段代码确实应该在IE中工作。 它似乎归结为jQuery中的一个错误,希望很快得到修复……
这是jQuery中bug报告的链接。 https://bugs.jquery.com/ticket/3614
对于所有keydown / keyup / keyboard需求,请使用jQuery热键插件。
几个月前看到它,它永远不会给它留下深刻印象。 按照插件演示的跳转… http://code.google.com/p/js-hotkeys/
它映射键盘上的所有键,包括组合。 希望能帮助到你!
尝试使用
$('#ajaxSearchText').keyup(function(event){ alert(event.keyCode); });
完美适合我。 还要检查textarea的id
$('#searchInput').keydown(function() { alert('testing'); });
不管用。 但是,如果将其包装在函数中:
$(function() { $('#searchInput').keydown(function() { alert('testing'); }); });
它会工作。
没有该函数声明,它只适用于文档和窗口等对象。
因为’window’对象不支持键事件。
http://www.w3schools.com/jsref/obj_window.asp
但仅限于’文件’:
http://www.w3schools.com/jsref/dom_obj_event.asp
如果它曾经工作过那么它就是jQuery中的一个bug。