jquery实现的点击页面其他地方隐藏显示的元素

jquery实现的点击页面其他地方隐藏显示的元素:
在实际应用中,可能有这样的效果,那就是有这样一个弹出层,点击层本身的时候,这个层不会隐藏,而点击除去层之外的页面其他地方则会将这个层隐藏,下面就通过代码实例介绍一下如何实现此效果。
代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
body{background-color:#999999;}
#thediv{
  background-color:#FFFFFF;
  width:250px;
  height:250px;
  display:none;
}
</style>
<script type="text/javascript" src="http://www.softwhy.com/mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
  var odiv=$("#thediv");
  $("#bt").click(function(event){
    showDiv();
    $(document).one("click",function(){
      odiv.hide();
    });
    event.stopPropagation();
  });
  odiv.click(function(event){
    event.stopPropagation();
  })
  function showDiv(){
    odiv.fadeIn();
  }
})
</script>
</head>
<body>
<input id="bt" type="button" value="显示元素" />
<div id="thediv">蚂蚁部落</div>
</body>
</html>

上面的代码实现了我们的要求,下面介绍一下它的实现过程。
一.代码注释:
1.$(function(){}),当文档结构完全加载完毕再去执行函数中的代码。
2.var odiv=$("#thediv"),获取div元素对象。
3.$("#bt").click(function(event){}),为按钮注册click事件处理函数,事件处理函数的参数是事件对象。
4.showDiv(),调用此函数可以显示div元素。
5.$(document).one("click",function(){odiv.hide();}),为document注册click事件处理函数,事件处理函数可以将指定的div元素隐藏。
6.event.stopPropagation(),用来阻止事件冒泡,否则点击事件冒泡到文档,那么div元素显示后又会瞬间被隐藏。
7.odiv.click(function(event){event.stopPropagation();}),为div元素注册click事件处理函数,这里目的其实就是为了组织事件冒泡。
8.function showDiv(){odiv.fadeIn();},调用此函数可以隐藏div。
二.相关阅读:
1.click事件可以参阅jQuery的click事件一章节。 
2.one()可以参阅jQuery的one()方法一章节。
3.stopPropagation()函数可以参阅jQuery的event.stopPropagation()方法一章节。
4.fadeIn()函数可以参阅jQuery的fadeIn()方法一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=14662

更多内容可以参阅:http://www.softwhy.com/jquery/

时间: 2024-12-26 10:42:20

jquery实现的点击页面其他地方隐藏显示的元素的相关文章

jquery实现点击页面其他地方隐藏指定元素

jquery实现点击页面其他地方隐藏指定元素:在很多效果中,都有这样的功能,当点击页面的其他地方时,能够隐藏一个指定的元素,例如在模拟实现的select下拉菜单效果中,当下拉菜单出现的时候,我们往往希望当点击页面其他地方的时候,能够隐藏下拉条,下面就通过一个实例单独介绍一下如何实现此功能.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name=

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

在网页开发的过程中经常遇到的一个需求就是点击一div内部做某些操作,而点击页面其它地方隐藏该div.比如很多导航菜单,当菜单展开的时候,就会要求点击页面其它非菜单地方,隐藏该菜单. 先从最简单的开始,假如页面有一个id为test的div,我们要实现点击页面其它地方隐藏该div: <div id="test" style="margin:100px;background-color:#3e3;width:100px;height:100px;"> <

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

思路一 第一种思路分两步 第一步:对document的click事件绑定事件处理程序,使其隐藏该div 第二步:对div的click事件绑定事件处理程序,阻止事件冒泡,防止其冒泡到document,而调用document的onclick方法隐藏了该div. <script type="text/javascript"> function stopPropagation(e) { if (e.stopPropagation) e.stopPropagation(); else

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

第一种思路分两步 第一步:对document的click事件绑定事件处理程序,使其隐藏该div 第二步:对div的click事件绑定事件处理程序,阻止事件冒泡,防止其冒泡到document,而调用document的onclick方法隐藏了该div. $(document).bind('click',function(){ $('#test').css('display','none'); }); $('#test').bind('click',function(e){ stopPropagati

点击页面其它地方隐藏某个div的两种思路

思路一             第一种思路分两步     第1步:对document的click事件绑定事件处理程序,使其隐藏该div     第2步:对div的click事件绑定事件处理程序,阻止事件冒泡,防止其冒泡到document,而调用document的onclick方法隐藏了该div $(document).bind('click',function(){    $('#test').hide();}); $('#test').bind('click',function(e){    

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

方法一: $("#a").on("click", function(e){  $("#menu").show();  $(document).one("click", function(){  $("#menu").hide();  });  e.stopPropagation(); }); $("#menu").on("click", function(e){  e

点击页面其他地方隐藏弹窗

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="js/jquery-2.1.3.min.js"></script> <style> .tip{ margin:300px auto; width:200px; height:100px; text-

点击页面其他地方的时候,让弹出框消失

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

android 实现点击listview 空白地方隐藏菜单

思路:重写ListView的setOnTouchListener事件: 1 ListView.setOnTouchListener(new OnTouchListener(){ 2 3 @Override 4 public boolean onTouch(View arg0, MotionEvent arg1) { 5 // TODO Auto-generated method stub 6 hideMenu();//隐藏菜单 7 return false; 8 } 9 10 }); 延申: 点