繁体   English   中英

单击页面中的任何位置时如何关闭下拉菜单?

[英]How to close drop-down when clicking anywhere in the page?

嗨,我正在用angularjs开发SPA。 成功登录用户后,我将在右上角设置一个下拉菜单。 每当我们单击下拉菜单时,就会扩展。 我想在用户单击页面中的任何位置时关闭该下拉列表。

以下是我的生成下拉列表的代码。

 var id = document.getElementById('ProfileDropdown');
        id.innerHTML = $scope.ProfileDropdown = '  <div data-drop-down>' + ' <ul>' +
                '<li ><a ui-sref="Dashboard.Userprofile">User Profile</a></li>' +
            '<li><a ui-sref="Dashboard.changepassword">Change Password</a></li>' +
              '<li><a ui-sref="Dashboard.LeaseListings">Lease Request</a></li>' +
                 '<li><a ui-sref="#">Service Request</a></li>' +
                   '<li><a ui-sref="Dashboard.NewServiceRequest">New Service Request</a></li>' +
           ' <li ng-click="logout()">Logout</li>' +
        '</ul>' + '</div>';
        $compile(id)($scope);

我正在努力寻找应该采取哪些措施,以在用户单击页面中的其他位置关闭 下拉菜单

这是SPA,所以我只有一个html页面。 在其他情况下,我将使用ui路由来动态附加内容。

我可以得到一些帮助来解决这个问题吗?

任何帮助,将不胜感激 !

谢谢。

尝试这个

   $document.click((e) => {
    let element = angular.element('.enterElementClassName')
     if (!element.is(e.target) && element.has(e.target).length === 0)      {
        // close popup condition
    }
    });

对于角做, 删除/添加类的角可以使用$ scope.class方法做删除下拉的类隐藏/从网页中删除

要么

Javascript / JQuery中

基于一些假设,可以有几种关闭下拉菜单的解决方案:假设您有一些描述下拉菜单的元素类,例如:

var id = document.getElementById('ProfileDropdown');
        id.innerHTML = $scope.ProfileDropdown = '  <div data-drop-down class="dropdown_menu">' + ' <ul>' +
                '<li ><a ui-sref="Dashboard.Userprofile">User Profile</a></li>' +
            '<li><a ui-sref="Dashboard.changepassword">Change Password</a></li>' +
              '<li><a ui-sref="Dashboard.LeaseListings">Lease Request</a></li>' +
                 '<li><a ui-sref="#">Service Request</a></li>' +
                   '<li><a ui-sref="Dashboard.NewServiceRequest">New Service Request</a></li>' +
           ' <li ng-click="logout()">Logout</li>' +
        '</ul>' + '</div>';
        $compile(id)($scope);

现在,要关闭该下拉列表,您可以触发一个 HTML标记的主 包装目标的Event ,并删除div中附加的类。 删除/关闭 元素/类是不同的上下文并且不在此问题的范围内,为此,您可以参考此链接

希望能有所帮助,

感谢和问候

肖希尔·塞提亚

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM