如果,否则如果语句无法正常工作
if, else if statement not working correctly
一切都很好,直到我进入第二个else if
,当两个div都被激活时。出于某种原因,只有#project-wrapper
才能删除类。我写错了第二个else if
吗?
$('.site-title a').click(function(e) {
e.preventDefault();
if($('#project-wrapper').hasClass('activated')){
$('#project-wrapper').removeClass('activated').css('max-height', '');
}
else if($('#contact-me').hasClass('activated')){
$('#contact-me').removeClass('activated');
}
else if( ($('#project-wrapper').hasClass('activated')) && ($('#contact-me').hasClass('activated')) ){
$('#contact-me').removeClass('activated');
$('#project-wrapper').removeClass('activated');
}
else {
}
});
首先检查"两者"条件,否则将永远不会检查该条件:
if( $('#project-wrapper').hasClass('activated') && $('#contact-me').hasClass('activated') ) {
$('#contact-me, #project-wrapper').removeClass('activated');
}
else if($('#project-wrapper').hasClass('activated')){
$('#project-wrapper').removeClass('activated').css('max-height', '');
}
else if($('#contact-me').hasClass('activated')){
$('#contact-me').removeClass('activated');
}
else {
}
您需要切换 if 状态,因为第二个 if 永远不会被击中
$('.site-title a').click(function(e) {
e.preventDefault();
if( ($('#project-wrapper').hasClass('activated')) && ($('#contact-me').hasClass('activated')) ){
$('#project-wrapper').removeClass('activated').css('max-height', '');
}
else if($('#contact-me').hasClass('activated')){
$('#contact-me').removeClass('activated');
}
else if($('#project-wrapper').hasClass('activated')){
$('#contact-me').removeClass('activated');
$('#project-wrapper').removeClass('activated');
}
else {
}
});
只需删除"else"部分并将所有条件保留在单独的"if"中即可。那应该有效
$('.site-title a').click(function(e) {
e.preventDefault();
if( ($('#project-wrapper').hasClass('activated')) && ($('#contact-me').hasClass('activated')) ){
$('#contact-me').removeClass('activated');
$('#project-wrapper').removeClass('activated');
}
if($('#project-wrapper').hasClass('activated')){
$('#project-wrapper').removeClass('activated').css('max-height', '');
}
if($('#contact-me').hasClass('activated')){
$('#contact-me').removeClass('activated');
}
});
在你的代码中,第二个"else-if"语句永远不会被到达,因为它要求两个元素都有类"激活",如果是这种情况,那么第一个"if"将启动,不会发生任何其他事情......(所有"else if"语句...
相关文章:
- 用户名输入如果其他块不能正常工作/Javascript-jQuery-AJAX
- PHP:运行后变量不工作“;如果“;命令
- jquery onclick if..否则如果..否则无法正常工作
- Angular ng sortable-如果我在一个栏中添加了一个搜索框,则拖放在两列之间无法正常工作
- Caret函数没有'如果插入符号在最后一个位置,就不能正常工作
- 如果定子工作不正常
- 如果谷歌工作表上的指定列发生更改,则发送电子邮件通知
- 如果else-bind不能正常工作,则淘汰
- 如果未找到或未在ng视图外工作,则为ng
- JQuery动画打断了脚本,但如果没有它,脚本就可以工作
- ng,如果工作不正常
- AngularJS-如果不工作,则使用ng输入自动对焦
- 如果图像工作正常,为什么 img onerror 处理程序会执行
- 为什么开关工作,如果不工作
- 如果else-工作,如果else与三元操作符不工作
- 如果npm工作得很好,为什么要使用bauer .js
- 如果,否则如果不工作的javascript
- 如果不工作,则多条语句else
- JavaScript比较如果不工作
- If语句-简单的javascript如果不工作