欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

onmouseover和onmouseout的一些問題思考

 更新時間:2013年08月14日 09:26:43   作者:  
這兩個事件的觸發(fā)表現(xiàn)真的就是你想要的嗎?在IE下確實有你需要的兩個這樣事件:onmouseenter 和 onmouseleave。但很不幸FF等其他瀏覽器并不支持
一個DIV層,當(dāng)鼠標(biāo)移進的時候會觸發(fā)onmouseover,移出的時候會觸發(fā)onmouseout。
 
很簡單的邏輯,這也是我們想要的!但隨之煩惱也就來了:onmouseover并不會只在移進時才觸發(fā),onmouseout也不會只在移出時才觸發(fā)!鼠標(biāo)在DIV里面移動時也會可能觸發(fā)onmouseover或onmouseout。
 
在上圖中,對于'A'來說:當(dāng)鼠標(biāo)進入'A'(路徑'1′)時那么就會觸發(fā)'A'的onmouseover事件;接著鼠標(biāo)移動到'B'(路徑'2′),此時'A'會觸發(fā)onmouseout(先)和onmouseover(后)事件。

由此可見,如果HTML元素(‘A'層)內(nèi)還有其他元素(‘B','C'層),當(dāng)我們移動到這些內(nèi)部的元素時就會觸發(fā)最外層(‘A'層)的onmouseout和onmouseover事件。

這兩個事件的觸發(fā)表現(xiàn)真的就是你想要的嗎?也許你需要一個只在移進時才觸發(fā)的,一個只在移出時才觸發(fā)的事件,不管其內(nèi)部是否還有其他元素….

解決方案

在IE下確實有你需要的兩個這樣事件:onmouseenter 和 onmouseleave。但很不幸FF等其他瀏覽器并不支持,只好模擬實現(xiàn):
復(fù)制代碼 代碼如下:

document.getElementById('...').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 事件的處理代碼
}
}
document.getElementById('...').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 事件的處理代碼
}
}

備注:

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

•在mouseover事件中,它表示鼠標(biāo)來自哪個元素
•在mouseout事件中,它指向鼠標(biāo)去往的那個元素
而Microsoft在mouseover和mouseout事件中添加了兩個屬性

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

相關(guān)文章

  • JavaScript運行時庫屬性一覽表

    JavaScript運行時庫屬性一覽表

    這篇文章主要介紹了JavaScript運行時庫屬性,需要的朋友可以參考下
    2014-03-03
  • JavaScript入門教程(6) Window窗口對象

    JavaScript入門教程(6) Window窗口對象

    他是JavaScript中最大的對象,它描述的是一個瀏覽器窗口。一般要引用它的屬性和方法時,不需要用“window.xxx”這種形式,而直接使用“xxx”。一個框架頁面也是一個窗口。
    2009-01-01
  • 探尋JavaScript中this指針指向

    探尋JavaScript中this指針指向

    JavaScript由于其在運行期進行綁定的特性,JavaScript 中的 this 可以是全局對象、當(dāng)前對象或者任意對象,這完全取決于函數(shù)的調(diào)用方式。
    2016-04-04
  • JavaScript 變量命名規(guī)則

    JavaScript 變量命名規(guī)則

    學(xué)習(xí)js的朋友一定要知道和注意,其實每種語言都有它的命名規(guī)則。
    2009-09-09
  • 淺談JavaScript字符集

    淺談JavaScript字符集

    這篇文章主要介紹了JavaScript字符集,需要的朋友可以參考下
    2014-05-05
  • ASP小貼士/ASP Tips javascript tips可以當(dāng)桌面

    ASP小貼士/ASP Tips javascript tips可以當(dāng)桌面

    今天看到《ASP小貼士/ASP Tips》 我也去把JavaScript的tips 下下來了。 看看是A4的。 自己把他改成1024 * 768 剛好可以用來做桌面
    2009-12-12
  • Javascript Throttle & Debounce應(yīng)用介紹

    Javascript Throttle & Debounce應(yīng)用介紹

    Throttle:無視一定時間內(nèi)所有的調(diào)用Debounce:一定間隔內(nèi)沒有調(diào)用時,接下來將為大家介紹下Throttle & Debounce的應(yīng)用,感興趣的朋友可以參考下哈
    2013-03-03
  • uniapp實現(xiàn)錄音上傳功能

    uniapp實現(xiàn)錄音上傳功能

    這篇文章主要介紹了uniapp 實現(xiàn)錄音上傳功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 深入理解ECMAScript的幾個關(guān)鍵語句

    深入理解ECMAScript的幾個關(guān)鍵語句

    下面小編就為大家?guī)硪黄钊肜斫釫CMAScript的幾個關(guān)鍵語句。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • javaScript對象和屬性的創(chuàng)建方法

    javaScript對象和屬性的創(chuàng)建方法

    javaScript對象和屬性的創(chuàng)建方法...
    2007-01-01

最新評論