我有这段代码:
$("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();
});
}
我如何实现我的目标?
答案 0 :(得分:1)
您可以处理文档的click事件,获取目标对象,然后测试它是nav div还是nav div的子节点。如果它不是2中的一个,你可以关闭它。
$(document).on("click", function(e){
var targ = $(e.target);
if (!targ.hasClass("nav") && targ.parents(".nav").length < 1) {
$("div.nav").slideUp();
}
});
<强> DEMO 强>