我正在尝试创建一个简单的 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();
});
关于javascript - jQuery if 语句的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18468478/