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