Jquery 单击内容时滑动

Jquery 单击内容时滑动,jquery,jquery-mobile,slidetoggle,slidedown,slideup,Jquery,Jquery Mobile,Slidetoggle,Slidedown,Slideup,我有以下代码: $("a.shownav").on("click", function(){ $("div.nav").slideToggle(); }); 当我点击页面的其他部分时,除了div.nav部分,我希望div.nav部分滑动。我试过这个,但似乎不起作用: if ($("div.nav").is(":visible")){ $("*").not("div.nav").on("click", function(){ $("div.nav").slideU

我有以下代码:

$("a.shownav").on("click", function(){
    $("div.nav").slideToggle();
});
当我点击页面的其他部分时,除了
div.nav
部分,我希望
div.nav
部分滑动。我试过这个,但似乎不起作用:

if ($("div.nav").is(":visible")){
    $("*").not("div.nav").on("click", function(){
        $("div.nav").slideUp();
    });
}

如何实现我想要的?

您可以处理文档的单击事件,获取目标对象,然后测试它是导航div还是导航div的子对象。如果它不是2中的一个,您可以关闭它

$(document).on("click", function(e){
    var targ = $(e.target);
     if (!targ.hasClass("nav") && targ.parents(".nav").length < 1) {
        $("div.nav").slideUp();
    }
});
$(文档)。在(“单击”)上,函数(e){
var targ=$(即目标);
如果(!target.hasClass(“nav”)和目标父项(“nav”)。长度<1){
$(“div.nav”).slideUp();
}
});


看看Ben Almans clickoutside events插件,谢谢。为我工作。