Keypress()在IE 9中不起作用

时间:2013-03-06 20:59:12

标签: jquery internet-explorer internet-explorer-9 keypress

我的jQuery代码在IE 9中不起作用,但在IE7,IE8,Chrome,FF中运行良好。

这是我的代码:

$(document).keypress(function(){
        window.clearTimeout();
        window.setTimeout(function() {
            //Do something...
            return false;
        }, 800);
});

3 个答案:

答案 0 :(得分:3)

尝试切换到与计算机不同的keydown,但应达到相同的效果

从教程:

  

为了理解keydown和keypress之间的区别,理解一个"字符"之间的区别是有用的。和一个"键"。 A"键"是计算机键盘上的一个物理按钮,而一个"字符"是按下按钮键入的符号。理论上,keydown和keyup事件表示按下或释放的键,而keypress事件表示键入的字符。在所有浏览器中,该理论的实现并不相同。

答案 1 :(得分:1)

删除window.clearTimeout()或为其指定参数。 IE9 incorrectly requires它。

$(document).keypress(function(){
    //window.clearTimeout();
    window.setTimeout(function() {
        alert("Worky!");
        return false;
    }, 800);
});

http://jsfiddle.net/Hztuv/1/

var timeout;
$(document).keypress(function(){
    window.clearTimeout(timeout);
    timeout = window.setTimeout(function() {
        alert("Worky!");
        return false;
    }, 800);
});

答案 2 :(得分:0)

根据this最好在IE上使用keydown()代替keypress()