0

私のjQueryコードはIE9では機能しませんが、IE7、IE8、Chrome、FFではうまく機能します。

これは私のコードです:

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

3 に答える 3

3

キーダウンに切り替えてみてください。これはコンピューターとは異なりますが、同じ効果が得られるはずです。

チュートリアルから:

キーダウンとキープレスの違いを理解するには、「文字」と「キー」の違いを理解しておくと便利です。「キー」はコンピューターのキーボード上の物理的なボタンであり、「文字」はボタンを押して入力する記号です。理論的には、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

これによると、IEkeydown()の代わりに使用する方が良いですkeypress()

于 2013-03-06T21:06:14.373 に答える