在焦点/模糊事件中对对象进行分组

时间:2014-07-06 17:26:44

标签: jquery

我看到一个示例使用.is(":focus")来检查另一个对象是否处于焦点,但它没有按预期工作。我正在使用FireFox,并希望它适用于支持jQuery的所有浏览器。

HTML:

 <input class=a value=a>
 <input class=b value=b>

 ^ focus on the input a
 How to make input.b stay visible when focus moves off .a and to .b?

JS:

 $(".a").focus(function(){
     $(".b").show();   
 });

 $(".a,.b").blur(function(){
     var f = false;
     if($(".a").is(":focus")) var f = true;
     if($(".b").is(":focus")) var f = true;
     if(!f) $(".b").hide();
 });  

当我将焦点移动到它时,Input.b总是隐藏,但它不应该。

这是一个小提琴,http://jsfiddle.net/7gXfC/1/

我不知道怎么做呢

1 个答案:

答案 0 :(得分:1)

这是一个解决方法,但你可以试试这个:

$(".a").focus(function(){
    $(".b").show();   
});

/*
   Added a timeout so b.focus event occurs before a.blur
*/
$(".a").blur(function(){
    setTimeout(function() {
        if(!$(".b").is(":focus")) $(".b").hide();
    }, 50);
});

$(".b").focus(function(){
    $(".b").show();
});

$(".b").blur(function(){
    $(".b").hide();
});

Fiddle