7

重複の可能性:
jQuery イベントに焦点を合わせてぼかし、バブリングしない

var default_input_value = null;
jQuery('body').on('focus focusout', 'input[type="text"]', function(event){
    if(event.type === 'focus'){
        default_input_value = jQuery(this).val();
        jQuery(this).val('');
    }else if(event.type === 'focusout')
        if(jQuery(this).val().length === 0)
        jQuery(this).val(default_input_value);
    }
);

このコードは単にイベントに応答しません。PS が存在することが重要です。状況によっては発火するinput[type="text"]こともあります....jQuery focuscheckbox

4

1 に答える 1

21

.on()jquery ドキュメントの下に、次の説明があります。

およびイベントは、W3C によってバブルしないように指定されfocusblurいますが、jQuery ではクロスブラウザーfocusinとバブルするイベントが定義されfocusoutています。委任されたイベント ハンドラーをアタッチするためにfocusblurを使用すると、jQuery は名前をマップし、focusinそれぞれ およびとして配信しfocusoutます。一貫性と明確さのために、バブリング イベント タイプ名を使用します。

これが役に立つことを願っています。

そして、このコードを試すことができます:

var default_input_value = null;
jQuery('body').on('focusin focusout', 'input[type="text"]', function(event){
    if(event.type === 'focusin'){
        default_input_value = jQuery(this).val();
        jQuery(this).val('');
    }else if(event.type === 'focusout'){
        if(jQuery(this).val().length === 0)
        jQuery(this).val(default_input_value);
    }
});
于 2013-01-24T07:45:50.593 に答える