2

問題があります。jQuery 1.8.2 を使用しています。focusout イベントに反応して、特別な条件下で残された要素に foucs をリセットしたい。今、私はサファリでループに巻き込まれるこの非常に単純なコードニペットを手に入れました.なぜこれが起こるのか分かりません...多分あなたは私を助けることができます.これは本当に簡単な例です:

JS:

$("#test").focusout( function () {
    alert("FocusOut event got triggered.");
    $("#test").focus();
});​

HTML:

<input type="text" id="test" />​

このデモを試してみてください: http://jsfiddle.net/ds38v/3/ 入力ボックスをクリックして、もう一度そのままにします。

4

1 に答える 1

3

この問題に関しては、ブラウザーの違いがいくつかあります。したがって、タイムアウトを使用して「leaveFocus」のように「シミュレート」し、その後再び「フォーカス」イベントを実行します。

$("#test").focusout( function () {
    window.setTimeout(function() {
        $("#test").focus();
    },1);
});​

このように動作しています。

それが役立つことを願っています...

于 2013-01-02T18:14:04.813 に答える