Javascript 检测可见性,单击另一个图元时隐藏

Javascript 检测可见性,单击另一个图元时隐藏,javascript,jquery,Javascript,Jquery,我已经编写了一些代码来实现这一点,但我的Jquery技能有限,有人能告诉我哪里出了问题吗?我想我的语法是完全错误的。提前感谢您的帮助:) 您的同一代码正在工作,只需包装在.ready()方法中,在e.stopPropagation()之后添加})。这就是导致问题的代码错误。您可以在浏览器的控制台中检查该错误 $(文档).ready(函数(){ //获取元素的jQuery选择器 var query=$('#menu.sub menu'); //检查元素是否可见 var isVisible=quer

我已经编写了一些代码来实现这一点,但我的Jquery技能有限,有人能告诉我哪里出了问题吗?我想我的语法是完全错误的。提前感谢您的帮助:)


您的同一代码正在工作,只需包装在
.ready()
方法中,
e.stopPropagation()之后添加
})。这就是导致问题的代码错误。您可以在浏览器的控制台中检查该错误

$(文档).ready(函数(){
//获取元素的jQuery选择器
var query=$('#menu.sub menu');
//检查元素是否可见
var isVisible=query.is(':visible');
如果(isVisible==真){
//元素是可见的
$(“#菜单”)。单击(功能(e){
query.hide();
e、 停止传播();
});
}否则{
//元素是隐藏的
}
});
$(文档).ready(函数(){
//获取元素的jQuery选择器
var query=$('#menu.sub menu');
//检查元素是否可见
var isVisible=query.is(':visible');
如果(isVisible==真){
//元素是可见的
$(“#菜单”)。单击(功能(e){
query.hide();
e、 停止传播();
});
}否则{
//元素是隐藏的
}
});
。子菜单{
背景:黄色;
}

菜单
子菜单

您缺少结束括号
})
e.stopPropagation()之后我认为您的if条件应该在click事件中。。若要在单击菜单项时获取当前状态,也可以将其添加到html的附加部分?而且,脚本似乎还没有完成$(“#菜单”)。单击,有什么错误吗?@guradio正要键入它!:)另外,因为您只使用了一次变量,所以最好只使用.is在if语句中,使用的字符更少:)感谢所有在这里提供指针的人,感谢Morpheus解决语法问题,非常感谢:)!
// 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
  }