亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

鼠標經過子元素觸發mouseout,mouseover事件的解決方案

2024-05-06 16:23:46
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了鼠標經過子元素觸發mouseout,mouseover事件的解決方案的相關資料,需要的朋友可以參考下

我想實現的目標:當鼠標進入黑色框時,橙色框執行淡入動畫;當黑色框范圍移動的時候(即使經過粉色框,動畫仍然不被觸發);當鼠標移出的時候,橙色方塊消失。

遇到的問題闡述:當鼠標移入黑色框的時候,橙色框執行淡入動畫,但是當鼠標從黑色框經過粉色框的時候,橙色框就消失了,然后又執行一遍淡入動畫。當鼠標從粉色框移出到黑色框的時候,橙色框的淡入動畫又被執行。這不是我想要的。

初期代碼:

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <script src="jquery.js"></script> 
  5. <meta charset="utf-8"
  6. <title>mouseover mouseout</title> 
  7. <style type="text/css" media="screen"
  8. .parent{ 
  9. width:200px; 
  10. height:200px; 
  11. background:black; 
  12. .child{ 
  13. width:100px; 
  14. height:100px; 
  15. background:pink; 
  16. .a1{ 
  17. width:40px; 
  18. height:40px; 
  19. background:orange; 
  20. display:none; 
  21. </style> 
  22. </head> 
  23. <body> 
  24. <div class="parent"
  25. <div class="child"></div> 
  26. <div class="a1"></div> 
  27. </div> 
  28. <script> 
  29. $('.parent').on('mouseover',function(e){  
  30. $('.a1').show(1000); 
  31. }); 
  32. $('.parent').on('mouseout',function(e){ 
  33. $('.a1').css('display','none'); 
  34. }); 
  35. </script> 
  36. </body> 
  37. </html> 

首先我們解釋一下原因,為什么會出現這些問題。

當鼠標從黑色框移到粉色框的時候,此時黑色框的mouseout的被觸發,又由于事件冒泡,黑色框的mouseover事件隨即被觸發,所以實際上,橙色框先消失,然后立即執行淡入動畫。這也就是我們看到的過程。

當鼠標從粉色框移到黑色框的時候,此時黑色框的mouseout又被觸發(因為不論鼠標穿過被選元素或其子元素,都觸發 mouseover 事件),同時mouseover也被觸發,所以又出現了再次執行淡入效果的過程。

方法一:用mouseleave/mouseout代替mouseover/mouseout【最佳方法】

先看一下mouseout&mouseover與mouseleave&mouseenter用法上的區別

mouseover與mouseenter

不論鼠標指針穿過被選元素或其子元素,都會觸發 mouseover 事件。

只有在鼠標指針從元素外穿入被選元素(到元素內)時,才會觸發 mouseenter 事件。

mouseout與mouseleave

不論鼠標指針離開被選元素還是任何子元素,都會觸發 mouseout 事件。

只有在鼠標指針從元素內穿出被選元素(到元素外)時,才會觸發 mouseleave 事件。

可以看一個簡單的例子看看二者的區別

所以改進的代碼可以為

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <script src="jquery.js"></script> 
  5. <meta charset="utf-8"
  6. <title>mouseover mouseout</title> 
  7. <style type="text/css" media="screen"
  8. .parent{ 
  9. width:200px; 
  10. height:200px; 
  11. background:black; 
  12. .child{ 
  13. width:100px; 
  14. height:100px; 
  15. background:pink; 
  16. .a1{ 
  17. width:40px; 
  18. height:40px; 
  19. background:orange; 
  20. display:none; 
  21. </style> 
  22. </head> 
  23. <body> 
  24. <div class="parent"
  25. <div class="child"></div> 
  26. <div class="a1"></div> 
  27. </div> 
  28. <script> 
  29. $('.parent').on('mouseenter',function(e){  
  30. $('.a1').show(1000); 
  31. }); 
  32. $('.parent').on('mouseleave',function(e){ 
  33. $('.a1').css('display','none'); 
  34. }); 
  35. </script> 
  36. </body> 
  37. </html> 

方法二:利用e.stopPropagation()阻止事件進一步傳播

e.stopPropagation()會終止事件在傳播過程的捕獲、目標處理或起泡階段進一步傳播。調用該方法后,該節點上處理該事件的處理程序將被調用,事件不再被分派到其他節點。

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <script src="jquery.js"></script> 
  5. <meta charset="utf-8"
  6. <title>mouseover mouseout</title> 
  7. <style type="text/css" media="screen"
  8. .parent{ 
  9. width:200px; 
  10. height:200px; 
  11. background:black; 
  12. .child{ 
  13. width:100px; 
  14. height:100px; 
  15. background:pink; 
  16. .a1{ 
  17. width:40px; 
  18. height:40px; 
  19. background:orange; 
  20. display:none; 
  21. </style> 
  22. </head> 
  23. <body> 
  24. <div class="parent"
  25. <div class="child"></div> 
  26. <div class="a1"></div> 
  27. </div> 
  28. <script> 
  29. $('.parent').on('mouseover',function(e){ 
  30. $('.a1').show(1000); 
  31. }); 
  32. $('.parent').on('mouseout',function(e){ 
  33. $('.a1').css('display','none'); 
  34. }); 
  35. $('.child').on('mouseover',function(e){ 
  36. e.stopPropagation(); 
  37. $('.a1').css('display','block'); 
  38. //這是保證動畫體的末狀態不變 
  39. }); 
  40. $('.child').on('mouseout',function(e){ 
  41. e.stopPropagation(); 
  42. //防止從粉色框移出到黑色框時再次觸發其他事件 
  43. }) 
  44. </script> 
  45. </body> 
  46. </html> 

拓展思考:

1.如果子元素過多怎么辦,難道每個都要去綁定e.stopPropagation()?

用jquery的一個選擇器.children(),比如$('.parent').children()。獲得匹配元素集合中每個元素的子元素。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品福利| 欧美成人黄色小视频| 欧美大片va欧美在线播放| x99av成人免费| 国产在线播放91| 久久综合国产精品台湾中文娱乐网| 国产精品91久久| 亚洲国产福利在线| 97色在线播放视频| 在线观看欧美日韩国产| 91日本在线视频| 成人黄色在线观看| 欧美极品第一页| 久久99精品久久久久久噜噜| 亚洲经典中文字幕| 欧美电影免费观看大全| 91国内揄拍国内精品对白| 亚洲欧美中文字幕| 色777狠狠综合秋免鲁丝| 欧美国产在线电影| 亚洲免费人成在线视频观看| 不卡中文字幕av| 久久综合色影院| 国产91精品高潮白浆喷水| 亚洲qvod图片区电影| 国内精品小视频| 91嫩草在线视频| 欧美日韩精品在线播放| 精品亚洲一区二区三区四区五区| 精品福利免费观看| 亚洲综合中文字幕在线| 国语自产偷拍精品视频偷| 91精品在线观看视频| 红桃av永久久久| 免费97视频在线精品国自产拍| 久久久国产影院| xxxxxxxxx欧美| 久久精品99久久久久久久久| 色悠悠国产精品| 色偷偷av一区二区三区| 日韩激情视频在线播放| 91久久精品美女| 精品国产一区二区三区久久久狼| 国产视频精品在线| 色综合伊人色综合网| 国产亚洲欧洲高清一区| 欧美精品在线观看91| 欧美国产日本在线| 国产99久久久欧美黑人| 亚洲精品免费一区二区三区| 亚洲国产成人精品一区二区| 91免费看国产| 欧美性极品少妇精品网站| 国产亚洲人成网站在线观看| 久久精品成人欧美大片古装| 神马久久久久久| 久久九九有精品国产23| 日韩视频免费观看| 欧美日韩美女在线观看| 97超级碰碰碰| 欧美性猛交丰臀xxxxx网站| 91精品视频在线| 久久国产精品影视| 亚洲二区在线播放视频| 久久久精品视频成人| 精品国产户外野外| 欧美日韩综合视频网址| 92国产精品久久久久首页| 亚洲一区二区在线| www日韩欧美| 国产午夜精品理论片a级探花| 成人午夜高潮视频| 日韩电影在线观看中文字幕| 91国产精品视频在线| 欧美日韩午夜剧场| 欧美高清视频在线播放| 日韩国产精品亚洲а∨天堂免| 一区二区三区高清国产| 岛国av一区二区在线在线观看| 国产亚洲精品一区二555| 亚洲国产成人久久| 欧美黑人巨大精品一区二区| 在线观看欧美视频| 国产精品99蜜臀久久不卡二区| 51精品在线观看| 日韩免费观看视频| 91精品国产91久久久久久久久| 欧美黄色片在线观看| 亚洲国产精品久久久久久| 亚洲一区二区久久久| 日韩精品在线视频美女| 国产香蕉97碰碰久久人人| 国产日韩精品在线观看| 久久久精品美女| 久久国产精品偷| 久久精视频免费在线久久完整在线看| 欧美黑人巨大精品一区二区| 狠狠色狠狠色综合日日小说| 欧美激情成人在线视频| 韩国三级电影久久久久久| 色综合伊人色综合网| 亚洲精品视频在线观看视频| 亚洲精品美女在线观看| 亚洲成人网在线观看| 日韩精品中文字幕有码专区| 另类少妇人与禽zozz0性伦| 国产精品免费久久久久久| 66m—66摸成人免费视频| 日本久久中文字幕| 日本精品久久中文字幕佐佐木| 国产美女久久久| 精品成人69xx.xyz| xxav国产精品美女主播| 亚洲第一网中文字幕| 国产精品久久久久av免费| 奇门遁甲1982国语版免费观看高清| 日韩国产欧美区| 中文字幕av一区| 亚洲国产日韩欧美在线动漫| 国产不卡av在线| 成人午夜激情网| 国语自产精品视频在线看| 中文字幕国产日韩| 精品无人区太爽高潮在线播放| 欧美另类老女人| 91色视频在线导航| 国产精品福利在线观看| 色悠久久久久综合先锋影音下载| 亚洲国产精品va在线观看黑人| 91影视免费在线观看| 国产精选久久久久久| 欧美成人剧情片在线观看| 欧美视频在线观看免费网址| 国产成人精品电影| 亚洲最大av在线| 亚洲已满18点击进入在线看片| 成人做爽爽免费视频| 亚洲香蕉成视频在线观看| 高清日韩电视剧大全免费播放在线观看| 久久99热精品| 欧美亚洲免费电影| 国产狼人综合免费视频| 91免费人成网站在线观看18| 亚洲黄色在线观看| 中文字幕在线精品| 久久天天躁狠狠躁夜夜av| 日韩大陆毛片av| 欧美日本亚洲视频| 精品国产乱码久久久久久天美| 久久频这里精品99香蕉| www亚洲欧美| 亚洲欧美在线第一页| 日韩乱码在线视频| 欧美性猛交xxxx乱大交极品| 国产精品高清在线| 欧美激情视频在线免费观看 欧美视频免费一| 成人欧美在线视频| 91免费看片网站| 久久国产精品久久久久久| 亚洲精品久久久久久下一站| 久久人人爽人人| 亚洲成人动漫在线播放| 精品亚洲一区二区三区在线观看| 成人国产精品免费视频|