首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery上的模糊,但专注于另一个

jquery上的模糊,但专注于另一个
EN

Stack Overflow用户
提问于 2011-02-18 14:43:37
回答 2查看 548关注 0票数 0

我有一个隐藏的div,有两个输入元素,默认情况下它会隐藏起来,只有当我悬停一些东西时才会显示出来,如果我悬停在外面,它就会消失。现在,我希望div不会在其中一个输入元素被聚焦时消失,如果模糊则消失。我已经解决了这一部分,直到,如果焦点从一个输入转移到另一个输入,div将消失,我不希望它消失,因为其中一个输入仍然是焦点。

下面是我的代码:

代码语言:javascript
运行
复制
// code with the problem I think.
$('#inputText1, #inputText2').live("blur", function() {
    if ($('#myDiv').is(":visible")) {
        if (!$(this).hasClass("jqTransformInputWrapper_focus")) {
            $('#myDiv').fadeOut("slow");
        }
    }
});

// hover to show and hide the div
$(".visibleDiv").hover(
    function() {
        $('#myDiv').fadeIn("slow");
    },
    function() {
        if(!$(this).find(".jqTransformInputWrapper").hasClass("jqTransformInputWrapper_focus")) {
            $('#myDiv').fadeOut("slow");
        }
    }
);

我的Html:

代码语言:javascript
运行
复制
<div class="visibleDiv">
    hover me
    <div id="myDiv">
        <input name="inputText1" id="inputText1" type="text" />
        <input name="inputText2" id="inputText2" type="text" />
    </div>
</div>

顺便说一句,我对输入元素使用了jqTransform。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-18 15:02:50

尝尝这个,

代码语言:javascript
运行
复制
// code with the problem I think.
$('#inputText1, #inputText2').live("blur", function() {

    if ($('#myDiv').is(":visible")) {
        if (!$(this).hasClass("jqTransformInputWrapper_focus")) {
            $('#myDiv').fadeOut("slow");
        }
    }

}).live("focus",function(){
    $('#myDiv').stop(true,true).show();
});
票数 1
EN

Stack Overflow用户

发布于 2011-02-18 14:49:09

为输入框提供一些类,并在其上应用jQuery

代码语言:javascript
运行
复制
<div class="visibleDiv">
    hover me
    <div id="myDiv">
        <input name="inputText1" id="inputText1" type="text" class="inputbox" />
        <input name="inputText2" id="inputText2" type="text" class="inputbox"/>
    </div>
</div>


// now this will work
$('.inputbox').live("blur", function() {
 // u can also use this
 // if($(this).parent().is(":visible") )
    if ($('#myDiv').is(":visible")) {
        if (!$(this).hasClass("jqTransformInputWrapper_focus")) {
            $('#myDiv').fadeOut("slow");
        }
    }
});

注意:使用delegate而不是live

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5038414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档