javascript - jQuery if 语句的问题

标签 javascript jquery html css if-statement

我正在尝试创建一个简单的 if 语句: if .information-overlay具有 CSS 属性 display:block ,添加background-color:blue; ;至body 。如果没有,就不要。

HTML:

<div class="information">Information</div>
<div class="work">Work</div>
<div class="information-overlay">INFORMATION OVERLAY</div>
<div class="work-overlay">WORK OVERLAY</div>

CSS:

.information-overlay, .work-overlay {
    display:none;
    width: 300px;
    height: 300px;
    background-color: salmon;
}

JS:

$('.information').click(function () {
    $('.information-overlay').fadeToggle();
    $('.work-overlay').fadeOut();
    if ($('.information-overlay').css('display') == 'block') {
        $('body').css('backgroundColor', 'blue');
    }
    if ($('.information-overlay').css('display') == 'none') {
        $('body').css('backgroundColor', 'white');
    }
});

这工作正常,但是它没有设置 body返回background-color: white;toggle淡出(或者再次调用第二个if)。它被困在蓝色上。有谁知道如何解决这个问题吗?

这是一个 JSFIDDLE:http://jsfiddle.net/hWXeM/6/

最佳答案

您必须传递动画完成后要执行的操作

$('.information').click(function () {
    $('.information-overlay').fadeToggle(function () {
        if ($('.information-overlay').css('display') == 'block') {
            $('body').css('backgroundColor', 'blue');
        }
        if ($('.information-overlay').css('display') == 'none') {
            $('body').css('backgroundColor', 'white');
        }
    });
    $('.work-overlay').fadeOut();
});

演示:http://jsfiddle.net/hWXeM/7/

关于javascript - jQuery if 语句的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18468478/

相关文章:

jquery - 如何从电子邮件中的链接执行 Bootstrap 模式?

javascript - jquery输出id显示为[object object]

javascript - 在 div 内容完全加载之前获取 div 高度

html - 如何打开现有的 WebSQL 数据库?

javascript - 如何修复 Jquery 模板?段落长度问题

Javascript 关闭意外结果

javascript - 在母版页中加载 JS 文件(ASP.NET、VB.NET)

jquery - html 中的文本区域跳转到焦点

javascript - 在 mouseleave 上添加/删除类

javascript - 如何从CasperJS操作PhantomJS的 "page"对象?