2

私はjavascriptコードを持っていますが、これはフォーカスシフト時に一度実行する必要があります。すべてが機能しますが、このコードは奇妙な理由で2回実行されるため、2つのアラートウィンドウを表示します。

$(document).ready(function() {
    $('#username').blur(function() {

        var formData = {
            "username":$('#username').val()
        };

        $.ajax({
            url:'check.php',
            type:'POST',
            data:'jsonData=' + $.toJSON(formData),
            success: function(res) {
                alert(res);
            }

        });
    });
});

私は何が間違っているのですか?

4

2 に答える 2

5

一部のブラウザ(Chrome、おそらくSafari)は、ブラウザウィンドウがフォーカスを失ったときに、別の「ぼかし」イベントを発生させます。それは私にはバグのように思えます、そして私はそれについて何ができるかわかりません。

詳細に説明すると、に「ぼかし」ハンドラーがあり<input>、フォーカスが設定されている場合、ブラウザーウィンドウの外側をクリックすると(または別のアプリケーションの場合はAltキーを押しながらTabキーを押して)、Chromeは2つの「ぼかし」イベントを発生させます。どちらのイベントもほとんど同じように見えるので、注意を払うべきかどうかを判断するのは難しいです。

私が持っている最善の提案は、「フォーカス」と「ブラー」の「クラス」値などを切り替えて、適切な「フォーカスされたばかり」の状態に見えない「ブラー」を無視することです。

これが私がその問題について投稿した質問です。

于 2012-07-01T14:55:35.277 に答える
-1

このコードを#usernamedivの前に移動しましたが、すべてが正常に機能しました。

于 2012-07-03T07:35:21.890 に答える