點擊div和某些控件之外的地方隱藏div,點擊div不隱藏。對象 click和document click沖突有關問題


幫朋友解決這個問題,我發現用以往想想像的方式來實現,貌似不太可行,所以從網上找了一些解決辦法,進行優化,這篇比較詳細,所以拿來備忘,另一方面也希望可以幫助需要的同學!

問題背景:jQuery事件問題!!對象 click和document click沖突問題

我想點擊某個元素顯示一個對象, 點擊頁面任意處,隱藏這個對象   


//點擊look對象,顯示隱藏mydiv
 $("#look").bind("click", function () {
    
  $("#mydiv").toggle();
    
  })
//點擊任意地方,隱藏顯示的mydiv

  $(document).bind("click", function () {
    
  if ($("#mydiv").css("display") == "block") {
  $("#mydiv").hide();
  }

  })

這樣兩個事件沖突了,點擊look對象,不會顯示mydiv

------解決方案--------------------
防止點擊事件冒泡 return false; 
------解決方案--------------------
不是沖突。。是冒泡了,,
$("#look").bind("click", function (e) {
  
$("#mydiv").toggle();
e.stopPropagation
})

試試 
------解決方案--------------------

JScript code
$("#look").bind("click", function () {
    
  $("#mydiv").toggle();
    return false;
  })

------解決方案--------------------
HTML code
$(document).bind("click", function (e) {
    if ($(e.target).is('#test')) return;
    else{ 
        if ($("#mydiv").css("display") == "block") {
             $("#mydiv").hide();
        }
    }
  })

------解決方案--------------------
e.stopPropagation
是這個
------解決方案--------------------
探討
$(document).bind("click", function (e) { if ($(e.target).is('#test')) return; else{ if ($("#mydiv").css("display") == "block") { $("#mydiv").hide();
$(e.target).is('#test')主要是確定點擊哪個目標,點擊這個目標后不隱藏,點擊其他就隱藏。
為了保證點擊這個div里面的控件不隱藏,可以設置$(e.target.parents()).is('#test')。保證點擊某個div里面的東西也不隱藏。

……

------解決方案--------------------
JScript code
$("#look").bind("click", function () {  
  $("#mydiv").toggle();  
event.stopPropagation();
  })

------解決方案--------------------
探討

JScript code

$("#look").bind("click", function (event) {
$("#mydiv").toggle();
event.stopPropagation();
})

------解決方案--------------------
return false就好了.

JScript code
<html>

<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p").click(function(){
  $(this).hide();
  });

$("#look").bind("click", function () {
   
  $("#mydiv").toggle();
return false;
   
  })
//點擊任意地方,隱藏顯示的mydiv

  $(document).bind("click", function () {
   
  if ($("#mydiv").css("display") == "block") {
  $("#mydiv").hide();
  }

  })
});
</script>
</head>

<body>
<div id='look'>
   click
</div>
<div id="mydiv">
<p>If you click on me, I will disappear.</p>
</div>
</body>

</html>

------解決方案--------------------
JScript code
$(function(){
$("#look").click(function (e) {   
     $("#mydiv").show();
     return false;   
  });
//點擊任意地方,隱藏顯示的mydiv
  $(document).click(function () {   
      $("#mydiv").hide();
  });
});

轉自:http://blog.csdn.net/xudanna/article/details/51818992


免責聲明!

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



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