2017-07-14 121 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