2017-07-14 89 views
-2

我已經放在一起的一些代碼,使這項工作,但我的jquery技能是有限的,任何人都可以讓我知道我要去哪裏錯了嗎?我認爲我的語法完全不正確。在此先感謝您的幫助:)檢測可見性,隱藏點擊另一個元素

// jQuery selector to get an element 
var query = $('#menu .sub-menu'); 

// check if element is Visible 
var isVisible = query.is(':visible'); 

if (isVisible === true) { 
    // element is Visible 
    $("#menu").click(function(e) { 
    query.hide(); 
    e.stopPropagation(); 
    } else { 
    // element is Hidden 
    } 
+2

你缺少右括號'})'e.stopPropagation()之後',' – Morpheus

+4

我覺得你如果條件應該是點擊事件裏面。要獲得的點擊現狀菜單 – guradio

+0

介意附件的html部分呢?並且腳本似乎還沒有完成$(「#menu」)。click,any error? – Se0ng11

回答

0

你相同的代碼工作剛剛擠包在.ready()方法和e.stopPropagation();後添加})。這是你的代碼中的錯誤,對你的問題負責你可以在瀏覽器的控制檯中檢查錯誤。

$(document).ready(function() { 
 
    // jQuery selector to get an element 
 
    var query = $('#menu .sub-menu'); 
 

 
    // check if element is Visible 
 
    var isVisible = query.is(':visible'); 
 

 
    if (isVisible === true) { 
 
     // element is Visible 
 
     $("#menu").click(function(e) { 
 
      query.hide(); 
 
      e.stopPropagation(); 
 
     }); 
 
    } else { 
 
     // element is Hidden 
 
    } 
 
});
.sub-menu {background: yellow;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="menu"> 
 
\t Menu 
 
\t <div class="sub-menu"> 
 
\t \t Sub Menu 
 
\t </div> 
 
</div>

+1

絕不僅僅是發佈代碼 - 總是添加說明 – ThisGuyHasTwoThumbs

+0

@ThisGuyHasTwoThumbs好吧!爲您的評論+1。那是我的錯誤,現在已經明白了,永遠不會這樣做。 –

+0

不用擔心:)刪除downvote:D – ThisGuyHasTwoThumbs