jQuery点击页面其他部分隐藏下拉菜单功能


Posted in jQuery onNovember 27, 2018

一、开发小要点

    web页面中,我们一般不用select、option来实现下拉菜单效果,因为下拉框的样式丑且难以美化,所以我们选择控制ul显示隐藏来实现同样且高大上的效果,但是不能像下拉框那样点击页面其他部分,下拉菜单收起或隐藏,该怎么办呢?只能用js这老大哥来控制了。

二、代码

    HTML:

<div class="select_box" id="selected">
  <div class="select">
    <span>请选择</span>
  </div>
  <ul class="list">
    <li>01</li>
    <li>02</li>
    <li>03</li>
    <li>04</li>
   </ul>
 </div>

    CSS:

<style type="text/css">
   *{margin:0;padding:0}
   ul,ol{list-style: none}
   .select_box{
     position:relative;
     margin:100px auto;
     width:300px;
   }
   .select{
     padding:5px 10px;
     border:1px solid #dedede;
   }
   .select:hover{
     cursor:pointer;
   }
   .select span{
     display: block;
     background:url("../../img/downicon.png") no-repeat right;
   }
   .list{
     display: none;
     position:absolute;
     top:30px;
     width:298px;
     border:1px solid #dedede;
     border-top:none;
   }
   .list li{
     padding:5px 10px;
   }
   .list li:hover{
     background:#ddd;
   }
 </style>

    JS:

$(function(){
   $(".select").click(function(){
    $(".list").toggle();
   })
   $(".list li").click(function(){
    $(".select span").html($(this).html());
    $(".list").hide();
   })
   $(document).bind("click",function(e){
    var e = e || window.event;  //事件对象,兼容IE
    var target = e.target || e.srcElement; //源对象,兼容火狐和IE
    while(target){
      if (target.id && target.id == "selected"){  //循环判断至根节点,防止点击的是#selected和它的子元素
       return;
    }
      target = target.parentNode;
    }
      $(".list").hide();  //点击的不是#selected和它的子元素,隐藏下拉菜单
    })
  })

    效果:

jQuery点击页面其他部分隐藏下拉菜单功能

总结

以上所述是小编给大家介绍的jQuery点击页面其他部分隐藏下拉菜单功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

jQuery 相关文章推荐
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
Jun 09 jQuery
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
jQuery取得元素标签名称小结(附代码)
Aug 16 jQuery
jQuery响应滚动条事件功能示例
Oct 14 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 jQuery
菊花转动的jquery加载动画效果
Aug 19 jQuery
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
JQuery表单元素取值赋值方法总结
May 12 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
jQuery实现日历效果
Sep 11 jQuery
html中两种获取标签内的值的方法
Jun 16 jQuery
jQuery实现上下滚动公告栏详细代码
Nov 21 #jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 #jQuery
IE8中jQuery.load()加载页面不显示的原因
Nov 15 #jQuery
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 #jQuery
详解jQuery获取特殊属性的值以及设置内容
Nov 14 #jQuery
jQuery 操作 HTML 元素和属性的方法
Nov 12 #jQuery
用jQuery将JavaScript对象转换为querystring查询字符串的方法
Nov 12 #jQuery
You might like
PHP编程基本语法快速入门手册
2016/01/07 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[03:07]【DOTA2亚洲邀请赛】我们,梦开始的地方
2017/03/07 DOTA
python网络编程之数据传输UDP实例分析
2015/05/20 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
python实现按行切分文本文件的方法
2016/04/18 Python
Python文件和流(实例讲解)
2017/09/12 Python
Python 中包/模块的 `import` 操作代码
2019/04/22 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
Python使用Paramiko控制liunx第三方库
2020/05/20 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
CSS3制作日历实现代码
2012/01/21 HTML / CSS
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
Footshop乌克兰:运动鞋的最大选择
2019/12/01 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
会计自我鉴定
2013/11/02 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
外国人来华邀请函
2015/01/31 职场文书
董事长致辞
2015/07/29 职场文书
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
2021/04/06 Oracle
MySQL分布式恢复进阶
2022/07/23 MySQL