如何从焦点中排除Id

时间:2013-06-28 20:15:46

标签: javascript jquery html focusout focusin

使用Jquery时,只要在设置“focusout”时单击焦点区域外的任何位置,就会调用focusout。

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

例如这里。

你有一个输入文本字段(id =“A”)隐藏焦点上的某个div并且当它没有焦点时显示非常div,所以现在它显然会在你点击任何地方时显示div( “#A”)输入字段。

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

2 个答案:

答案 0 :(得分:1)

尝试使用relatedTarget事件属性:

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

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

});

答案 1 :(得分: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;
}