jquery如何阻止子元素相應mouseout事件:mouseout有一個特點,當滑鼠移入子元素的時候,也會觸發此事件,但是在實際應用中這個特點往往不是我們想要的,下麵就通過代碼實例介紹一下如何實現此效果,代碼實例如下:螞蟻部落 以上代碼實現了我們的要求,當滑鼠指針移入子div的時候,不會觸發事件....
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()方法一章節。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11377
更多內容可以參閱:http://www.softwhy.com/jquery/