jquery如何阻止子元素相應mouseout事件


jquery如何阻止子元素相應mouseout事件:
mouseout有一個特點,當鼠標移入子元素的時候,也會觸發此事件,但是在實際應用中這個特點往往不是我們想要的,下面就通過代碼實例介紹一下如何實現此效果,代碼實例如下:

 

復制代碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
#father
{
  width:100px;
  height:100px;
  background:red;
}
#inner
{
  width:50px;
  height:50px;
  background:green;
}
</style>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript"> 
$(document).ready(function(){
  $("#father").mouseout(function(e){ 
    evt = window.event||e; 
    var obj=evt.toElement||evt.relatedTarget; 
    var pa=this; 
    if(pa.contains(obj)) return false; 
    $(this).hide(); 
  });   
})
</script>
</head>
<body>
<div id="father">
  <div id="inner"></div>
</div>
</body>
</html>
復制代碼

 

以上代碼實現了我們的要求,當鼠標指針移入子div的時候,不會觸發事件,但是當鼠標移出父div的時候會觸發事件,下面接掃一下實現此效果的過程。
一.實現原理:
原理非常的簡單,就是判斷當鼠標指針移動的時候,判斷與事件的目標節點相關的節點是否是子元素,如果是子元素,則不觸發事件,如果不是子元素則觸發事件。
二.相關閱讀:
1.mouseout事件可以參閱jQuery的mouseout事件一章節。 
2.evt = window.event||e可以參閱var ev=window.event||ev的作用是什么一章節。 
3.toElement屬性可以參閱javascript的toElement事件屬性一章節。 
4.relatedTarget屬性可以參閱javascript的relatedTarget事件屬性一章節。 
5.this可以參閱javascript的this用法詳解一章節。 
6.contains()函數可以參閱jQuery.contains()方法一章節。
7.hide()函數可以參閱jQuery的hide()方法一章節。


免責聲明!

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



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