2017-07-14 8 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")で完了していないようです。 – Se0ng11

答えて

0

あなたの同じコードは、ちょうど.ready()方法でwraped働いていると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

関連する問題