Jquery If / Then在Click函数中?

时间:2013-10-27 02:08:47

标签: javascript jquery if-statement onclick

这就是我想要的......

点击名为'bd'的div>检查id为“ump”的div是否具有“active”类> 如果确实如此,请使用'brandDump'等级获取div并慢慢向上滑动,隐藏它,并删除“active”>类。否则,将div与class'brandDump'一起使用并向下滑动,显示它,然后添加“active”类

点击div.bd后什么也没发生。我究竟做错了什么?

小提琴链接和代码如下。

http://jsfiddle.net/K2V8f/36/

<div class="bd">cool</div>
<div class="brandDump" id="ump">works</div>
<div>shape</div>

.brandDump {
background-color:#fff;
width:100px;
display:none;
}

.bd {
width:100px;
height:100px;
background-color:#000;
}

$(".bd").click(function () {
if ("#ump".hasClass("active")) {
    $(".brandDump").slideUp("slow");
    $(".brandDump").hide();
    $(".brandDump").removeClass("active");
} else {
    $(".brandDump").slideDown("slow");
    $(".brandDump").show();
    $(".brandDump").addClass("active");
}
});

2 个答案:

答案 0 :(得分:2)

Updated fiddle

您需要在slideUp完成时使用回调。

$(".bd").click(function () {
    if ($("#ump").hasClass("active")) {
        $(".brandDump").slideUp("slow", function () {
            $(".brandDump").removeClass("active");
        });

    } else {
        $(".brandDump").slideDown("slow", function () {
            $(".brandDump").addClass("active");
        });

    }

});

还有一个错误(“#ump”)...应该是$(“#ump”)

答案 1 :(得分:1)

问题是你有:

"#ump".hasClass(...

......你什么时候应该:

$("#ump").hasClass(...

但请注意,.slideUp().slideDown()方法会隐藏并显示您的元素,因此您也无需调用.hide().show()。如果你希望它们在同一个元素上运行,那么将jQuery方法链接在一起会更有效:

$(".bd").click(function () {
    if ($("#ump").hasClass("active")) {
        $(".brandDump").slideUp("slow")
                       .removeClass("active");
    } else {
        $(".brandDump").slideDown("slow")
                       .addClass("active");
    }
});

演示:http://jsfiddle.net/K2V8f/50/

  

“检查id为'ump'的div是否具有'active'类&gt;如果是,请使用'brandDump'类获取div并慢慢向上滑动”

ID为ump的div与相同的 div与类brandDump的div相同。我不确定你为什么要谈论它们,就好像它们是两个不同的div一样,实际上你的代码似乎可以交替使用#ump.brandDump选择器来选择一个div,但是如果你将它们视为一个更强的,你可以将你的功能降低到一行:

$(".bd").click(function () {
    $(".brandDump").slideToggle("slow").toggleClass("active");
});

演示:http://jsfiddle.net/K2V8f/51/