使focusout事件忽略一些元素

时间:2013-10-08 08:09:49

标签: javascript jquery jquery-focusout

在下面的代码中,如果您点击<input type="text" id="one" />并出现“红色块” 。如果你集中注意力,那么“红色块”就会消失

我如何制作focusout如果“红色区块”或<input type="text" id="two" />是下一个重点元素,则不会触发?

Demo

的JavaScript

$('#one').focus(function () {
    $('#divRemove').show();
});

$('#one').focusout(function () {
    $('#divRemove').hide();
});

$('#divRemove').click(function(){
    alert($(this).text());    
});

HTML

<input type="text" id="one" />_______
<input type="text" id="two" />
<br/>
<br/>
<div id="divRemove" style="width:100px;height:100px;background:red; display:none;">remove on focus out</div>

1 个答案:

答案 0 :(得分:3)

您可以将重点放在#one和#two

$('#one,#two').focus(function () {
    $('#divRemove').show();
}).focusout(function () {
    $('#divRemove').hide();
});

DEMO

<强>更新

除非您使用tabindex="0"

为其提供这样的自定义索引,否则您无法真正关注div
<div id="divRemove" tabindex="0"

然后在jQuery中执行此操作

$('#one,#two,#divRemove').focus(function () {
    $('#divRemove').show();
}).focusout(function () {
    $('#divRemove').hide();
});

DEMO