最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

onmouseover事件和onmouseout事件全面理解

 更新時間:2016年08月15日 09:02:39   作者:simpleton  
最近兩天在溫習onmouseover事件和onmouseout事件,其實里面有很多深奧的知識,接下來小編給大家?guī)砹薿nmouseover事件和onmouseout事件全面了解,感興趣的朋友一起看下

  這兩天接觸了onmouseover事件和onmouseout事件,一直以為它們只是簡單的分別實現(xiàn)鼠標指針移動到元素上時觸發(fā)事件和在鼠標指針移出指定的對象時觸發(fā)事件,但是突然發(fā)現(xiàn)這些只是對它們簡單的描述,下面讓我們一起看看它們終究還有神馬奇怪的特性,是好還是壞呢?

  首先實現(xiàn)一個盒子:

  給這個盒子上綁定上onmouseover事件和onmouseout事件

  發(fā)現(xiàn)它們不會發(fā)生什么問題,然后(嘿嘿,你懂得?。?/p>

  讓我們創(chuàng)建一個B元素,讓它被嵌套在A元素中,作為A的子元素

  我們依舊只給外層父元素A綁定onmouseover事件和onmouseout事件,你會發(fā)現(xiàn)發(fā)生什么了呢?對,沒錯!當鼠標移入移除A的子元素B的時候居然也發(fā)生了onmouseover事件和onmouseout事件??!Why?這不是我想要的!難道這時候B就不在是A的一部分了嗎?當然不是,要不也不會在移入B元素時發(fā)生onmouseover事件。這樣證明,B元素還是A不可分割的一部分啊。

  那到底是怎么回事呢?終究還是事件冒泡搞得鬼?大家都知道常用的瀏覽器中有兩種事件流:事件冒泡和事件捕獲。讓我們看一下事件冒泡的定義:事件按照從最特定的事件目標逐級向上傳播到最不特定的事件目標(document對象)的順序。所以說當鼠標移入移除A的子元素B的時候,B的onmouseover事件和onmouseout事件會觸發(fā),但是它自己沒有這兩個事件啊,就把這兩個事件傳遞給了它的父元素A,A有這兩個事件所以就發(fā)生了我們看到的情況。

  有人會說那怎么避免呢,畢竟不是所有人都會是這種需求嘛,我們只要父級元素的事件觸發(fā)就好,子級元素就讓它靜靜的當個美男子就好了。

  所以W3C在mouseover和mouseout事件中添加了relatedTarget屬性 :

  •在mouseover事件中,它表示鼠標來自哪個元素
  •在mouseout事件中,它指向鼠標去往的那個元素

  而而Microsoft在mouseover和mouseout事件中添加了兩個屬性

  •fromElement,在mouseover事件中表示鼠標來自哪個元素
  •toElement,在mouseout事件中指向鼠標去往的那個元素

  所以我們就有了如下代碼的實現(xiàn)

document.getElementById('box1').onmouseover = function (e) {
if (!e) e = window.event;
var reltg = e.relatedTarget ? e.relatedTarget : e.fromElement;
while (reltg && reltg != this) reltg = reltg.parentNode;
if (reltg != this) {
// 這里可以編寫 onmouseenter 事件的處理代碼
alert('111');
}
}
document.getElementById('box1').onmouseout = function (e) {
if (!e) e = window.event;
var reltg = e.relatedTarget ? e.relatedTarget : e.toElement;
while (reltg && reltg != this) reltg = reltg.parentNode;
if (reltg != this) {
// 這里可以編寫 onmouseleave 事件的處理代碼
alert('2222');
}
}

以上所述是小編給大家介紹的onmouseover事件和onmouseout事件的全面了解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • JavaScript實現(xiàn)簡單計算器功能

    JavaScript實現(xiàn)簡單計算器功能

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)簡單計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 基于javascript canvas實現(xiàn)五子棋游戲

    基于javascript canvas實現(xiàn)五子棋游戲

    這篇文章主要介紹了基于javascript canvas實現(xiàn)的五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 微信小程序 scroll-view的使用案例代碼詳解

    微信小程序 scroll-view的使用案例代碼詳解

    這篇文章主要介紹了微信小程序 scroll-view的使用案例分析,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • JavaScript Reflect Metadata實現(xiàn)詳解

    JavaScript Reflect Metadata實現(xiàn)詳解

    這篇文章主要介紹了JavaScript Reflect Metadata實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • JavaScript 經典實例日常收集整理(常用經典)

    JavaScript 經典實例日常收集整理(常用經典)

    本文是小編日常收集整理些js經典實例,非常具有參考借鑒價值,需要的朋友一起了解了解吧
    2016-03-03
  • JavaScript高級程序設計閱讀筆記(十六) javascript檢測瀏覽器和操作系統(tǒng)-detect.js

    JavaScript高級程序設計閱讀筆記(十六) javascript檢測瀏覽器和操作系統(tǒng)-detect.js

    javascript檢測瀏覽器和操作系統(tǒng) detect.js使用介紹,需要的朋友可以參考下
    2012-08-08
  • JS實現(xiàn)簡單貪吃蛇小游戲

    JS實現(xiàn)簡單貪吃蛇小游戲

    這篇文章為大家詳細主要介紹了JS實現(xiàn)簡單貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 那些項目中常見的TypeScript錯誤總結

    那些項目中常見的TypeScript錯誤總結

    這篇文章主要給大家總結介紹了一些項目中常見的TypeScript錯誤的相關資料,如果你想查看所有的錯誤信息和錯誤碼,可以瀏覽TypeScript的源代碼倉庫,當然隨著?ts?版本的更新,官網(wǎng)也會逐漸增加更多新的類型錯誤,需要的朋友可以參考下
    2022-03-03
  • 基于JavaScript實現(xiàn)年份數(shù)字拼圖效果

    基于JavaScript實現(xiàn)年份數(shù)字拼圖效果

    時光荏苒,2022年又要收尾了,公司的年會是不是都安排上了?前幾天看到一個年會抽獎系統(tǒng),功能十分的強大,其中有一個年份數(shù)字的拼圖效果深深的吸引了哥,決定用JS實現(xiàn)一下該效果,需要的可以參考一下
    2022-12-12
  • js+html5實現(xiàn)半透明遮罩層彈框效果

    js+html5實現(xiàn)半透明遮罩層彈框效果

    這篇文章主要為大家詳細介紹了js+html5實現(xiàn)半透明遮罩層彈框效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論

顺昌县| 灵丘县| 合肥市| 温泉县| 玉屏| 镇雄县| 扬州市| 合山市| 乾安县| 北宁市| 浏阳市| 台北市| 宁陕县| 万宁市| 竹山县| 错那县| 涡阳县| 吉隆县| 华蓥市| 丹棱县| 紫阳县| 嫩江县| 梧州市| 平顶山市| 黑河市| 东兰县| 武定县| 密山市| 天峨县| 建昌县| 库尔勒市| 全椒县| 葫芦岛市| 宁都县| 信丰县| 繁昌县| 寿阳县| 昌宁县| 龙海市| 西畴县| 岗巴县|