jquery切换在if-else语句中不起作用

时间:2015-02-22 09:27:59

标签: javascript jquery

我正在尝试使用以下脚本隐藏/显示页面的各个部分:

$(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会在第一次单击编号按钮时出现,但在重新点击时不会消失。

我做错了什么?非常感谢。

1 个答案:

答案 0 :(得分:2)

替换:

} else if (contentType == "train" || "manual") {

使用:

} else if (contentType == "train" || contentType == "manual") {

"manual"始终评估为true,因此整个else-if分支的评估结果为true。有关详细信息,请参阅MDN