我有这样的代码:'slideToggle‘函数--它工作得很好,但是背景色没有变化。有小费吗?谢谢
jQuery:
$("#btnContactMob").on("click", function(){
$("#contactMob").stop(true).slideToggle();
});
if (('#contactMob').is(':visible')) {
$('#btnContactMob').css('background-color', '#FFF');
}CSS:
#btnContactMob {
cursor: pointer;
width: 100%;
height: 55px;
color: #333;
background-color: #CCCCCC;
border-top:1px solid #1a1a1a;
font-family: Lato-Regular;
text-align: center;
padding-top: 10px;
font-size: 26px;
}
#contactMob {
width: 100%;
height:100%;
position: relative;
background-color: #FFF;
float: left;
display: none;
}发布于 2014-04-04 11:32:47
您需要将条件检查移到slideToggle回调。
var $el = $('#contactMob');
var $btn = $("#btnContactMob").on("click", function () {
$el.stop(true).slideToggle(function () {
$btn.css('background-color', $el.is(':visible') ? '#FFF' : '');
});
});演示:小提琴
发布于 2014-04-04 11:32:48
看起来您在if语句中漏掉了一个$,请尝试:
$("#btnContactMob").on("click", function(){
$("#contactMob").stop(true).slideToggle();
});
if ($('#contactMob').is(':visible')) {
$('#btnContactMob').css('background-color', '#FFF');
}更新
也同意上面的答案,你应该做这个检查,每次它被点击。
发布于 2014-04-04 11:33:17
看起来您缺少了jquery $符号:
if ($('#contactMob').is(':visible')) {
$('#btnContactMob').css('background-color', '#FFF');
}整个if需要在单击处理程序中移动。
https://stackoverflow.com/questions/22861598
复制相似问题