0

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

这是我的代码:

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

3 回答 3

3

换成keydown试试,和电脑不一样,但应该能达到一样的效果

从一个教程:

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

于 2013-03-06T21:03:33.837 回答
1

删除window.clearTimeout()或给它一个参数。IE9错误地需要它。

$(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);
});
于 2013-03-06T21:05:09.543 回答
0

根据this最好使用keydown()而不是keypress()在IE上

于 2013-03-06T21:06:14.373 回答