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

首頁 > 編程 > JavaScript > 正文

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

2019-11-20 11:59:41
字體:
來源:轉載
供稿:網友

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

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

初期代碼:

<!DOCTYPE html><html><head><script src="jquery.js"></script> <meta charset="utf-8"> <title>mouseover mouseout</title> <style type="text/css" media="screen">   .parent{ width:200px; height:200px; background:black;}.child{ width:100px; height:100px; background:pink;}.a1{ width:40px; height:40px; background:orange; display:none;} </style></head><body><div class="parent"> <div class="child"></div> <div class="a1"></div></div><script>$('.parent').on('mouseover',function(e){   $('.a1').show(1000); }); $('.parent').on('mouseout',function(e){  $('.a1').css('display','none'); });</script></body></html>

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

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

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

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

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

mouseover與mouseenter

不論鼠標指針穿過被選元素或其子元素,都會觸發 mouseover 事件。
只有在鼠標指針從元素外穿入被選元素(到元素內)時,才會觸發 mouseenter 事件。

mouseout與mouseleave

不論鼠標指針離開被選元素還是任何子元素,都會觸發 mouseout 事件。
只有在鼠標指針從元素內穿出被選元素(到元素外)時,才會觸發 mouseleave 事件。

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

所以改進的代碼可以為

<!DOCTYPE html><html><head><script src="jquery.js"></script> <meta charset="utf-8"> <title>mouseover mouseout</title> <style type="text/css" media="screen">   .parent{ width:200px; height:200px; background:black;}.child{ width:100px; height:100px; background:pink;}.a1{ width:40px; height:40px; background:orange; display:none;} </style></head><body><div class="parent"> <div class="child"></div> <div class="a1"></div></div><script>$('.parent').on('mouseenter',function(e){   $('.a1').show(1000); }); $('.parent').on('mouseleave',function(e){  $('.a1').css('display','none'); });</script></body></html>

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

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

<!DOCTYPE html><html><head><script src="jquery.js"></script> <meta charset="utf-8"> <title>mouseover mouseout</title> <style type="text/css" media="screen">   .parent{ width:200px; height:200px; background:black;}.child{ width:100px; height:100px; background:pink;}.a1{ width:40px; height:40px; background:orange; display:none;} </style></head><body><div class="parent"> <div class="child"></div>  <div class="a1"></div></div> <script> $('.parent').on('mouseover',function(e){   $('.a1').show(1000); }); $('.parent').on('mouseout',function(e){   $('.a1').css('display','none'); }); $('.child').on('mouseover',function(e){  e.stopPropagation();  $('.a1').css('display','block');  //這是保證動畫體的末狀態不變 }); $('.child').on('mouseout',function(e){  e.stopPropagation();  //防止從粉色框移出到黑色框時再次觸發其他事件 }) </script></body></html>

拓展思考:

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久99久久精品女同性| 欧美一区二区三区四区在线| 97不卡在线视频| 一区二区亚洲精品国产| 欧美一级视频在线观看| 日韩在线观看精品| 久久久中文字幕| 国产精品天天狠天天看| 一区二区三区亚洲| 日韩性生活视频| 日韩欧美国产骚| 亚洲欧洲高清在线| 国产精品久久久久久亚洲调教| 亚洲日本欧美日韩高观看| 欧美人与性动交| 国产日韩综合一区二区性色av| 欧美裸体xxxxx| 国产欧美中文字幕| 亚洲欧美综合图区| 亚洲小视频在线观看| 97超碰国产精品女人人人爽| 青青草一区二区| 成人黄色短视频在线观看| 中文字幕一区二区三区电影| 久久影院免费观看| 欧美一区深夜视频| 日韩在线欧美在线国产在线| 伊人精品在线观看| 欧美插天视频在线播放| 91产国在线观看动作片喷水| 97成人精品视频在线观看| 97在线视频国产| 韩日欧美一区二区| 亚洲福利影片在线| 日韩av高清不卡| 日韩精品极品在线观看| 日韩在线视频免费观看| 精品国产31久久久久久| 久久成人一区二区| 亚洲电影免费在线观看| 色婷婷成人综合| www.亚洲一二| 久久视频在线播放| 欧美日韩国产影院| 亚洲精品福利视频| 国产日韩精品在线观看| 国产成人激情视频| 久久久久久中文字幕| 国产精品白嫩美女在线观看| 精品久久久久久久久久久久| 国产日韩在线看片| 欧美日韩性视频在线| 亚洲欧美成人精品| 久久精品国产一区二区三区| 国产精品爽黄69| 国产丝袜高跟一区| 成人免费看片视频| 疯狂做受xxxx欧美肥白少妇| 日韩黄色高清视频| 国产精品羞羞答答| 久久久久久亚洲精品不卡| 国产精品久久色| 日韩精品在线免费播放| 亚洲最大福利视频网| 欧美多人爱爱视频网站| 成人黄色大片在线免费观看| 国产精品电影久久久久电影网| 亚洲天堂av高清| 欧美性猛交丰臀xxxxx网站| 按摩亚洲人久久| yw.139尤物在线精品视频| 动漫精品一区二区| 另类少妇人与禽zozz0性伦| 亚洲综合大片69999| 欧美另类精品xxxx孕妇| 综合136福利视频在线| 欧美日韩国产精品一区二区三区四区| 亚洲free性xxxx护士白浆| 丝袜情趣国产精品| 日本在线精品视频| 欧美激情视频网| 亚洲精品中文字幕有码专区| 色婷婷综合久久久久中文字幕1| 91亚洲一区精品| 欧美大片在线看免费观看| 美女视频黄免费的亚洲男人天堂| 国产日韩精品在线| 亚洲www在线观看| 国产精品日韩一区| 亚洲日韩第一页| 欧美成人免费观看| 97av视频在线| 8050国产精品久久久久久| 国产精品主播视频| 久久99青青精品免费观看| 久久影视电视剧免费网站清宫辞电视| 在线播放亚洲激情| 亚洲专区国产精品| 亚洲国产精品专区久久| 欧美一级视频免费在线观看| www.欧美精品一二三区| 久久成人人人人精品欧| 色综合伊人色综合网站| 亚洲精品在线观看www| 91香蕉嫩草影院入口| 欧美精品激情视频| 久久精品视频99| 一区二区三区在线播放欧美| 青草热久免费精品视频| 日韩精品极品在线观看播放免费视频| 成人免费视频a| 91wwwcom在线观看| 亚洲日本aⅴ片在线观看香蕉| 91网站免费观看| 亚洲已满18点击进入在线看片| 在线观看国产欧美| 亚洲一区二区福利| 欧美另类极品videosbest最新版本| 亚洲成av人片在线观看香蕉| 欧美在线视频一区| 精品国产91乱高清在线观看| 欧美日韩国产在线| 91经典在线视频| 欧美日韩中文在线| 欧美电影在线观看高清| 亚洲欧美日韩天堂一区二区| 色中色综合影院手机版在线观看| 欧美日韩福利电影| 日韩美女中文字幕| 这里精品视频免费| 欧美激情图片区| 欧美性猛交xxxx黑人| 51ⅴ精品国产91久久久久久| 国产成人久久久| 九九精品在线播放| 欧美重口另类videos人妖| 国产精品极品美女粉嫩高清在线| 亚洲精品国精品久久99热一| 欧美自拍视频在线观看| 欧美黄色小视频| 欧美亚洲另类视频| 亚洲精品www久久久| 久久夜精品va视频免费观看| 日韩精品视频在线观看免费| 欧美福利视频在线观看| 亚洲激情电影中文字幕| 日韩在线一区二区三区免费视频| 91色中文字幕| 亚洲影视九九影院在线观看| 亚洲色图15p| 97成人精品区在线播放| 日韩欧美在线免费观看| 欧美午夜美女看片| 国产成人aa精品一区在线播放| 日韩欧美第一页| **欧美日韩vr在线| 欧美激情性做爰免费视频| 日韩免费观看av| 国产一区二区三区在线观看网站| 韩国日本不卡在线| 97精品在线观看| 亚洲free性xxxx护士hd| 精品久久久国产| 日韩美女视频中文字幕|