jQuery垂直下拉瓦特/淡化

时间:2013-09-30 14:36:03

标签: jquery slide fade

这很有效。但是,再次单击“#pages-btn”不会关闭“#instruments-pages”div。有没有更好的方法来写这个?谢谢你的帮助。

这是演示我的问题的小提琴:http://jsfiddle.net/PCzfs/1/

$("#pages-btn").click(function () {
    $("#instruct-pages").fadeToggle();
    $(this).addClass("options-active");
});
$(document).mouseup(function (e) {
    var container = $("#instruct-pages");
    if (!container.is(e.target)
        && container.has(e.target).length === 0)
    {
        container.fadeOut();
        $("#pages-btn").removeClass("options-active");
    }
});

3 个答案:

答案 0 :(得分:0)

var $instructPages = $("#instruct-pages");
$instructPages.is(":visible") ? $instructPages.fadeOut() : $instructPages.fadeIn();

demo


更新

  

如何为“点击”切换.options-active类?有用   当您单击容器外部但如果单击该容器不起作用   实际按钮。

var $instructPages = $("#instruct-pages");
if ($instructPages.is(":visible"))
{
    $instructPages.fadeOut();
    $(this).removeClass("options-active");
}
else
{
    $instructPages.fadeIn();
    $(this).addClass("options-active");
}

demo

答案 1 :(得分:0)

http://jsfiddle.net/PCzfs/2/

$("#pages-btn").click(function (e) {
     var container = $("#instruct-pages");
    container.fadeToggle();        

    if (!container.is(e.target) && container.has(e.target).length === 0){
        if($(this).hasClass('options-active')){
            $("#pages-btn").removeClass("options-active");    
        }else{
            $("#pages-btn").addClass("options-active");
        }   

    }

});

答案 2 :(得分:0)

您可以将它添加到您的mouseup函数中:

e.target.id!=="pages-btn"