2

Jquery では、「focusout」が設定されている場合、フォーカスされた領域外の任意の場所をクリックすると、focusout が呼び出されます。

「フォーカスアウト」機能のアクティブ化から一部の ID を除外するにはどうすればよいですか。?

例えばここ。

フォーカスのある div を非表示にし、フォーカスが外れているときにその div を表示する入力テキスト フィールド ( id="A") があるため、これ以外の場所をクリックすると明らかに div が表示されます ("#A ") 入力フィールド。

問題は、「フォーカスアウト」機能を起動しないように、ID(おそらく選択フィールド(Id="B" の隣))をどのように設定するかです。それが理にかなっていることを願っています。

4

2 に答える 2

1

relatedTargetイベントプロパティを使用してみてください:

$('#id').focusout (function (e) {

    if (e.relatedTarget && e.relatedTarget.id === 'dontFocusOut') {
        return;
    }
    //do your thing

});
于 2013-06-28T21:29:40.183 に答える
0

divをクリックするとできunbindます。focusoutこれにより、予期した結果が返される場合があり、コードのある時点で再バインドする必要が生じる可能性があります。例については、こちらを参照してください: http://jsfiddle.net/hdCFA/

$("input").on("focus", function() {
    $(".hidden").show();
});
$("input").on("focusout",function() {
    $(".hidden").hide();
});

$(".clickable").on("mousedown", function() { 
    $("input").unbind("focusout"); 
});

HTML:

<input />
<div class="hidden">Hidden div</div>
<div class="clickable">Click me</div>

CSS:

.clickable { background:blue; }
.hidden {
    display:none;
}
于 2013-06-28T21:29:39.060 に答える