javascript - angular 实现 下拉菜单 的 点击其他区域关闭下拉菜单功能?
PHPz
PHPz 2017-04-11 09:09:32
[JavaScript讨论组]

代码如图, 点击 p.selected 的时候 ul.dorpdown-list 就会显示 点击 li 的时候 ul收起 并且 赋值给selectedVal

现在还有个需求是 点击dorpDown 指令外的部分 要收起 ul.dorpdown-list

怎么办呢?

PHPz
PHPz

学习是最好的投资!

全部回复(4)
黄舟

其实你只要写select就可以达到你的目标
``
<select ng-model="selected">
<option></option>
</select>
``

ringa_lee

简单的方法,直接写一个p包含你要的下拉列表,加个遮罩就可以了,遮罩部分加ng-click事件让下拉的p隐藏。p中ng-repeat循环选项,选项的ng-click事件来确定你选择的数据(传所选对象,不要传$index)。这个东西没必要写指令,如果需要多次重用,再写指令。

巴扎黑

绑定页面单击事件,关闭下拉菜单功能,举个列子

//html---------------
<p ng-controller="ctrl">
    <input type="button" value="点击" ng-click="showListClick($event)"/>
    <ul ng-show="showFlag" style="display: none;">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</p>

//script------------------------
myApp.controller('ctrl', function( $scope,$document ){
    
    $scope.showFlag=false;
    $scope.showListClick=function($event){
        $event.stopPropagation();
        $scope.showFlag=true;
    }
    
    //绑定页面单击事件,关闭下拉菜单功能
    $document.bind("click", function(event) {
        $scope.showFlag=false;
        $scope.$apply();             
     }); 
});
高洛峰

在你的指令里面写一个函数 监听一个事件 外面写一个documentclick的方法,执行的时候执行这个方法 影藏掉,点击自己的时候阻止冒泡

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号