首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >告诉一个元素根据页面上其他元素的状态显示自己吗?

告诉一个元素根据页面上其他元素的状态显示自己吗?
EN

Stack Overflow用户
提问于 2013-03-27 02:52:23
回答 1查看 69关注 0票数 1

我的页面上有3个隐藏的div,还有一个可见的通用“欢迎”消息。这些div的左边是一些项目,当单击这些项目时,会切换它们各自的div(以及其他div)。这一切都像预期的那样工作。

代码语言:javascript
运行
复制
var $jq = jQuery.noConflict(true); 
$jq(function() { 
$jq("#fade1").click(function(){ 
    $jq("#div1").fadeToggle(750); 
    $jq("#div2").fadeOut(1); 
    $jq("#div3").fadeOut(1);
    $jq("#welcomediv").fadeOut(1);
}); 
$jq("#fade2").click(function(){ 
    $jq("#div1").fadeOut(1); 
    $jq("#div3").fadeOut(1); 
    $jq("#div2").fadeToggle(750); 
    $jq("#welcomediv").fadeOut(1);
}); 
$jq("#fade3").click(function(){ 
    $jq("#div1").fadeOut(1); 
    $jq("#div2").fadeOut(1); 
    $jq("#div3").fadeToggle(750);
    $jq("#welcomediv").fadeOut(1);
});
});

然后我尝试添加一个if语句,告诉欢迎消息在其他消息都不可见的情况下显示自己,例如,如果用户单击一个消息将其淡出,然后再次单击它将其淡出。目前,to行为只会给用户留下空白空间。

代码语言:javascript
运行
复制
        if ($jq("#div1:hidden") && $jq("#div2:hidden") && $jq("#div3:hidden")){
    (function(){
        $jq("#welcomediv").fadeIn(500);
    });
};

我也尝试过直接检查CSS,比如

代码语言:javascript
运行
复制
if ($jq("#div1").css("display", "none") && $jq("#div2").css("display", "none") &&     $jq("#div3").css("display", "none") {
    $jq("#welcomediv").fadeIn(500);
});

代码语言:javascript
运行
复制
if ($('div.x').css('height') === 'auto') {
$('.y').removeClass('a');

}

所有这些似乎都不起作用。当单击它们各自的链接时,div仍然淡入淡出,但我的if语句什么也不做。想法?

EN

回答 1

Stack Overflow用户

发布于 2013-03-27 02:54:13

要检查元素是否不可见,请使用:

代码语言:javascript
运行
复制
if ($jq(selector).is(':hidden') && ... )

您还应该能够使用以下命令检查这三个选项是否都可见:

代码语言:javascript
运行
复制
if ($jq('#div1:hidden,#div2:hidden,#div3:hidden').length === 3) { ... }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15645120

复制
相关文章

相似问题

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