2

使用 Jquery,当您在设置“focusout”时单击焦点区域外的任意位置时,才会调用 focusout。

如何从激活“focusout”功能中排除某些 id。?

例如这里。

您有一个输入文本字段( id="A"),它在焦点上隐藏了一些 div 并在它失去焦点时显示该 div,所以但现在它显然会在您单击此之外的任何位置时显示该 div ("#A ") 输入字段。

问题是,你如何设置一些 id(可能是一个选择字段(Id="B" 旁边),而不是触发“focusout”功能。希望它有意义。

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

您可以unbindfocusout单击 div 时。这可能会返回一些预期的结果,并且在您的代码中的某个时刻,您可能想要重新绑定它。见这里的例子: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 回答