Javascript 单击时关闭下拉列表

Javascript 单击时关闭下拉列表,javascript,jquery,html,Javascript,Jquery,Html,我想在单击文档中的任何位置时关闭下拉菜单,目前它仅在单击下拉菜单本身时关闭。以下是我目前对HTML和JQuery的了解: HTML: 我想你正在寻找这样的东西: $(“#下拉列表”)。在('click',函数(e){ e、 预防默认值(); if($(this).hasClass('open')){ $(this.removeClass('open'); $(this.children('ul').slideUp('fast'); }否则{ $(this.addClass('open');

我想在单击文档中的任何位置时关闭下拉菜单,目前它仅在单击下拉菜单本身时关闭。以下是我目前对HTML和JQuery的了解:

HTML:


我想你正在寻找这样的东西:

$(“#下拉列表”)。在('click',函数(e){
e、 预防默认值();
if($(this).hasClass('open')){
$(this.removeClass('open');
$(this.children('ul').slideUp('fast');
}否则{
$(this.addClass('open');
$(this.children('ul')。slideDown('fast');
}
});
$(文档).mouseup(函数(e){
变量容器=$(“#下拉列表”);
if(!container.is(e.target)//如果单击的目标不是容器。。。
&&
container.has(e.target).length==0)/…或容器的后代
{
container.children('ul')。slideUp('fast');
}
});

姓名

我想您正在寻找这样的产品:

$(“#下拉列表”)。在('click',函数(e){
e、 预防默认值();
if($(this).hasClass('open')){
$(this.removeClass('open');
$(this.children('ul').slideUp('fast');
}否则{
$(this.addClass('open');
$(this.children('ul')。slideDown('fast');
}
});
$(文档).mouseup(函数(e){
变量容器=$(“#下拉列表”);
if(!container.is(e.target)//如果单击的目标不是容器。。。
&&
container.has(e.target).length==0)/…或容器的后代
{
container.children('ul')。slideUp('fast');
}
});

姓名

如果您再次按下文档和下拉列表,您必须单击两次:P,但感谢您的帮助,伙计:)@poseidon23查看小提琴以获得更好的效果。如果您再次按下文档和下拉列表,您必须单击两次:P,但是谢谢你的帮助,伙计:)@poseidon23查看小提琴以获得更好的结果。我希望我的回答能帮助你,如果还有任何疑问,请随意提问。如果还有任何疑问,请随意提问,我希望我的回答能帮助你。
<div class="user-menu">
            <div id="dropdown" class="ddmenu">
                  <img src="#" class="user-menu-pic" alt="">
                <span>Name Lastname</span>
                <img src="images/dropdown-icon.png" class="right dropdown-icon" width="30" height="30" alt="">
              <ul>
                <li><a href="#">My Profile</a></li>
                <li><a href="#">Change profile picture/background</a></li>
                <li><a href="#">Settings</a></li>
                <li><a href="#">Change password</a></li>
                <li><a href="#">Sign Out</a></li>
              </ul>
            </div>
        </div>
      $('#dropdown').on('click', function (e) {
    e.preventDefault();
    if ($(this).hasClass('open')) {
        $(this).removeClass('open');
        $(this).children('ul').slideUp('fast');
    } else {
        $(this).addClass('open');
        $(this).children('ul').slideDown('fast');
    }
});