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使用FormData上传文件和其他数据后端web.py获取
Jun 11 jQuery
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
jQuery实现的事件绑定功能基本示例
Oct 11 jQuery
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 jQuery
jQuery 动态粒子效果示例代码
Jul 07 jQuery
jQuery实现日历效果
Sep 11 jQuery
jquery实现广告上下滚动效果
Mar 04 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 取得瑞年与平年的天数的代码
2009/08/10 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
php自动加载方式集合
2016/04/04 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
yii2安装详细流程
2018/05/23 PHP
php探针不显示内存解决方法
2019/09/17 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
javascript StringBuilder类实现
2008/12/22 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
python实现词法分析器
2019/01/31 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
工厂厂长岗位职责
2013/11/08 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
黄金搭档广告词
2014/03/21 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js