2014-07-13 139 views
0

我正在使用一个菜单,就像是一个移动menu.I想当我点击图片时,它会滑下来,并显示菜单,当点击该图像时,它会滑动。也希望当我点击身体的任何地方时,它也会滑动。当我点击图片并点击身体时,我的菜单正在工作。如何通过jQuery显示和隐藏当点击一个div并隐藏点击时body也

但是,当再次点击图像时不能向上滑动菜单。这就是问题所在。

我使用此代码

$(".service_detail_menu img").click(function(e){ 
    $(".service_detail_menu ul").slideDown(300); 
     e.stopPropagation(); 
}); 
$(document).click(function(){ 
    $(".service_detail_menu ul").slideUp(300); 
}); 

这是我的链接。点击第一次阅读更多。你可以看到菜单。

http://goo.gl/gMeDgz

感谢

+1

您应该创建DIV打开菜单时填充(覆盖)整个文档。然后,只需将点击处理程序添加到该div并关闭菜单。 – Hardy

+0

显示html或更多好是provie jsfiddle –

回答

0

试试这个代码

$(".service_detail_menu img").click(function(e) { 
    if ($(this).hasClass('active')) { 
     $(".service_detail_menu ul").slideUp(300); 
     $(this).removeClass('active'); 
    } 
    else { 
     $(".service_detail_menu ul").slideDown(300); 
     $(this).addClass('active'); 
    } 
    }); 

    $(document).mouseup(function(e) { 
     if ($(e.target).parents(".service_detail_menu").length == 0) { 
      $(".service_detail_menu ul").slideUp(300); 
      $(".service_detail_menu img").removeClass('active'); 
     } 
    }); 
+0

嗨,你的代码工作。但是当我点击身体它不工作​​。我需要它也工作,当我点击导航image.anywhere之外,我点击它会像我目前的代码滑动。 –

+0

我已更新代码,请检查。 – amol

+0

非常感谢amol。它的工作原理:) –

0

使用:visible或:hidden来检查ul是否可见,如果可见,则向上滑动。

$(".service_detail_menu img").click(function(e){ 
    $(".service_detail_menu ul:hidden").slideDown(300); 
    $(".service_detail_menu ul:visible").slideUp(300); 
    e.stopPropagation(); 
}); 

http://api.jquery.com/visible-selector/