2014-07-13 181 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/