jquery實現點擊頁面其他地方隱藏指定元素


代碼實例如下:
<!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){}),為藍色塊注冊事件處理函數,不過阻止了事件冒泡效果,所以二級菜單不會隱藏。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM