我正在尝试使用以下脚本隐藏/显示页面的各个部分:
$(function () {
$('.open').on('click', function () {
var contentType = $(this).attr('id');
if (contentType == "all") {
$('.content-div').show();
} else if (contentType == "train" || "manual") {
$('.content-div.' + contentType).show();
$('.content-div:visible:not(.' + contentType + ')').hide();
} else if (contentType == "close") {
$('.content-div').hide();
} else {
$('.content-div.' + contentType).toggle();
}
});
});
带有html的jsfiddle example is here
问题在于else部分的最后一行 - 当在if-else语句之外但在else部分不起作用时,这正常工作(用相关类显示/隐藏相关的div) div会在第一次单击编号按钮时出现,但在重新点击时不会消失。
我做错了什么?非常感谢。
答案 0 :(得分:2)
替换:
} else if (contentType == "train" || "manual") {
使用:
} else if (contentType == "train" || contentType == "manual") {
"manual"
始终评估为true
,因此整个else-if
分支的评估结果为true
。有关详细信息,请参阅MDN。