代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>点击页面其他地方隐藏div-蚂蚁部落</title>
<style type="text/css">
*{
  margin:0px;
  padding:0px;
}
.main{
  cursor:pointer;
}
.list{
  border:1px solid black;
  display:none;
}
.list li{
  cursor:pointer;
  border:1px solid red;
  list-style:none;
}
#noPopEvent{
  width:100px;
  height:100px;
  background-color:blue;
  font-size:12px;
  margin:200px;
  text-align:center;
  line-height:100px;
}
</style>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(".main").click(function(e){
    $(".list").toggle();
    e.stopPropagation();
  })
   
  $(document).click(function(){
    $(".list").hide();
  })
   
  $(".list li").click(function(){
    $(".main").text($(this).text());
    $(".list").hide();
  })
  $("#noPopEvent").click(function(e){
    e.stopPropagation();
  })
});
</script>
</head>
<body>
<div style="width:200px;margin:20px;">
  <div class="main">蚂蚁部落</div>
  <div class="list">
    <ul>
      <li>div+css教程</li>
      <li>javascript教程</li>
    </ul>
  </div>
</div>
<div id="noPopEvent">点我不行</div>
</body>

</html>

以上代码中,点击蚂蚁部落能够出现二级菜单,当点击页面的其他任何地方都会隐藏此二级菜单,但是点击蓝色的部分不能够隐藏二级菜单,下面就介绍一下此效果的实现过程。
一.实现原理:
原理很简单,蓝色区域的click事件采用了添加了阻止冒泡的功能,其他的地方都没有阻止冒泡,所以当点击的时候事件能够冒泡到document,然后将二级下拉才菜单隐藏。
二.代码注释:
1.$(document).ready(function(){ }),当文档结构加载岸壁再去执行函数中的代码。
2.$(".main").click(function(e){ }),当点击蚂蚁部落的时候能够实现二级下拉菜单隐藏和显示的切换。
3.$(".list").toggle(),下拉菜单显示和隐藏的切换。
4.e.stopPropagation(),阻止事件冒泡,否则的话冒泡都document,那么二级菜单始终处于隐藏状态。
5.$(document).click(function(){}),将click时间注册到document,这样点击任何其他地方都可以将事件冒泡到document,然后将二级菜单隐藏,除非阻止了事件冒泡效果。
6.$(".list").hide(),隐藏二级菜单。
7.$(".list li").click(function(){}),点击二级菜单的某一项,能够将当前文本写入主体中去,然后再隐藏二级菜单。
8.$(".main").text($(this).text()),将点击的二级菜单的文本写入主体中去。
9.$(".list").hide(),隐藏二级下拉菜单。
10.$("#noPopEvent").click(function(e){}),为蓝色块注册事件处理函数,不过阻止了事件冒泡效果,所以二级菜单不会隐藏。

jquery实现点击页面其他地方隐藏指定元素的更多相关文章

  1. jQuery 实现点击页面其他地方隐藏菜单

    点击页面其它地方隐藏id为messageList的div 代码: $('body').delegate("#message", 'click', function(e) { var ...

  2. 点击页面其它地方隐藏div所想到的jQuery的delegate

    在网页开发的过程中经常遇到的一个需求就是点击一div内部做某些操作,而点击页面其它地方隐藏该div.比如很多导航菜单,当菜单展开的时候,就会要求点击页面其它非菜单地方,隐藏该菜单. 先从最简单的开始, ...

  3. 由点击页面其它地方隐藏div所想到的jQuery的delegate

    对于这个问题一般有两种思路,这两种思路都会利用事件冒泡这一原理,想要详细了解Javascript事件机制可以看看JavaScript与HTML交互——事件,这不是本文重点,所以这里只是简单介绍一下事件 ...

  4. 点击页面其它地方隐藏该div的两种思路

    思路一 第一种思路分两步 第一步:对document的click事件绑定事件处理程序,使其隐藏该div 第二步:对div的click事件绑定事件处理程序,阻止事件冒泡,防止其冒泡到document,而 ...

  5. 点击页面其它地方隐藏该div的方法

    思路一 第一种思路分两步 第一步:对document的click事件绑定事件处理程序,使其隐藏该div 第二步:对div的click事件绑定事件处理程序,阻止事件冒泡,防止其冒泡到document,而 ...

  6. JS如何实现点击页面其他地方隐藏菜单?

    方法一: $("#a").on("click", function(e){  $("#menu").show();    $(documen ...

  7. js点击页面其他地方如何隐藏div元素菜单

    web页面常用的一个需求,写下拉菜单是我们往往不是用select_option,而是自定义一个元素列出选项来满足需求,当我们点击按钮出现菜单, 点击按钮或菜单以外页面空白地方隐藏该菜单,这里提供一种简 ...

  8. jquery实现点击展开列表同时隐藏其他列表 js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象

    这篇文章主要介绍了jquery实现点击展开列表同时隐藏其他列表的方法,涉及jquery鼠标事件及节点的遍历与属性操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了jquery实现点击 ...

  9. JS 实现点击页面任意位置隐藏div、span

    通过调用下面的 showhidden(“标签ID”) 显示div/span/…等标签内容,可以实现点击页面任意地方再次隐藏该标签内容,而showhidden(“标签ID”,”nohidden”)可保存 ...

随机推荐

  1. /bin/rm: Argument list too long解決方法

    rm.cp.mv是unix下面常用到的檔案處理指令,當我們需要刪除大量的log檔案,如果檔案數太多就會出現此訊息[/bin/rm: Argument list too long]解決方式如下: 例如要 ...

  2. JVMInternals

    http://blog.jamesdbloom.com/JVMInternals.html http://blog.jamesdbloom.com/JavaCodeToByteCode_PartOne ...

  3. 重力感应操控(unity iphone)

    方案一:speed 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public var simulateAcceleromet ...

  4. java_list,set,map集合

    一.集合定义 集合就是讲诺干用途相同.近似的“数据”结合成一个整体 集合从体系上分为三种 1.列表(List):List集合区分元素的顺序,允许包含相同的元素 2.集(set):Set集合不区分元素的 ...

  5. 【转】C# Winform打包部署时添加注册表信息实现开机启动

    使用VS自带的打包模块可以很方便的对项目进行打包部署,同时我们也可以在安装部署时操作注册表实现开机启动软件.具体实现如下: 1.添加安装部署项目后,鼠标右键安装项目->视图->注册表,HK ...

  6. redis报错Windows error 0x70(a large memory)

    redis报错Windows error 0x70 redis 嫌弃你内存不够了,就给你不开第二个实例. The Windows version of Redis allocates a large ...

  7. innertext与innerhtml

    <div id="test"> <span style="color:red">test1</span> test2 < ...

  8. (转)Android-Mac电脑如何进行APK反编译-使用apktool、jd-gui

    最近群里有人问如何在mac下进行apk反编译,我也没试过,以前都是在windows下进行反编译的,windows下很简单,有许多比较好的集成工具,如apkide(改之理),不过我猜mac下应该和win ...

  9. js 日期时间比较

    js时间日期比较 <script type="text/javascript"> //begin > end 返回True function comptime(b ...

  10. java书箱

    http://www.blogjava.net/kuuyee/archive/2013/06/03/400084.html http://www.blogjava.net/cheneyfree/