奇妙なバグがあり、何が問題になっているのかわかりません。アプリケーションでキーを処理するときTABに、イベントハンドラーで同期AJAXリクエストを実行すると、Firefoxは間違った要素にフォーカスを与えます。
私はここで簡単なテストケースを作成することができました:http://jsfiddle.net/aVeQp/18/
結果の部分をクリックしてからTabキーを押すと、最初の2回は正しく機能しますが(次のセルに移動します)、最後は「ホーム」要素にフォーカスが移ります。クエリを非同期に変更すると、フォーカスはホームボタンに移動しません。
var ret = $.ajax({
type: 'POST',
url: "",
data: { action: "test"},
datatype: "xml",
async: false
});
これはLinuxでは発生しませんが、Windows764ビットでのFirefox16.0.2にバグがあります。
ajax呼び出しがjsfiddleで正しく機能していないことは知っていますが、バグは自分のインストールで発生し、ajax呼び出しは正しく返されます。コードとバグを表示するだけです。dhtmlxのAJAXリクエストを使用してみましたが、同じバグが発生します。
誰かが私が間違っていることの手がかりを持っていますか?私は多くのことを試しましたが、Firefoxはこの特定のケースでイベントの伝播を停止することを気にしないようです。
編集:以前のテストで何か間違ったことをしたようで、setTimeout()は最終的には機能するソリューションです。しかし、私はまだそれが最終的にこの「ハック」なしで機能するはずだと思います。