首頁 >web前端 >js教程 >關於jquery如何阻止子元素對應的mouseout事件

關於jquery如何阻止子元素對應的mouseout事件

黄舟
黄舟原創
2017-06-28 11:43:201337瀏覽

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>
<p id="father">
  <p id="inner"></p>
</p>
</body>
</html

以上程式碼實現了我們的要求,當滑鼠指標移入子p的時候,不會觸發事件,但當滑鼠移出父p的時候會觸發事件,下面接掃實現此效果的過程。
一.實作原理:
原理非常的簡單,就是判斷當滑鼠指標移動的時候,判斷與事件的目標節點相關的節點是否是子元素,如果是子元素,則不觸發事件,如果不是子元素則觸發事件。
二.相關閱讀:
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()方法一章節。

以上是關於jquery如何阻止子元素對應的mouseout事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn