javascript mouseover、mouseout停止事件冒泡的解決方案
更新時間:2009年04月07日 21:52:40 作者:
停止事件冒泡在各瀏覽器中已經(jīng)有相應(yīng)的解決方案,但是對于mouseover和mouseout卻顯得力不從心。
在IE里有onmouseleave和onmouseenter, 而對于要兼容各大瀏覽器的Web開發(fā)人員來說還是一件頭疼的事。
雖然網(wǎng)上已經(jīng)有針對Mozilla Firefox的一些計策,但代碼量也是不容樂觀的。
想尋求比較好的解決方案,于是就翻遍了國內(nèi)的大小網(wǎng)站,終一無所獲,不得不硬著頭皮去讀國外網(wǎng)站,結(jié)果是理想的,因為W3C里有relatedTarget,于是就有了下邊的解決方案:
function isMouseLeaveOrEnter(e, handler) {
if (e.type != 'mouseout' && e.type != 'mouseover') return false;
var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;
while (reltg && reltg != handler)
reltg = reltg.parentNode;
return (reltg != handler);
}
在onmouseover和onmouseout里做如上判斷。
作者:lxsgoodluck
雖然網(wǎng)上已經(jīng)有針對Mozilla Firefox的一些計策,但代碼量也是不容樂觀的。
想尋求比較好的解決方案,于是就翻遍了國內(nèi)的大小網(wǎng)站,終一無所獲,不得不硬著頭皮去讀國外網(wǎng)站,結(jié)果是理想的,因為W3C里有relatedTarget,于是就有了下邊的解決方案:
復(fù)制代碼 代碼如下:
function isMouseLeaveOrEnter(e, handler) {
if (e.type != 'mouseout' && e.type != 'mouseover') return false;
var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;
while (reltg && reltg != handler)
reltg = reltg.parentNode;
return (reltg != handler);
}
在onmouseover和onmouseout里做如上判斷。
作者:lxsgoodluck
相關(guān)文章
js 實現(xiàn)watch監(jiān)聽數(shù)據(jù)變化的代碼
這篇文章主要介紹了js 實現(xiàn)watch監(jiān)聽數(shù)據(jù)變化的代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10Layui帶搜索的下拉框的使用以及動態(tài)數(shù)據(jù)綁定方法
今天小編就為大家分享一篇Layui帶搜索的下拉框的使用以及動態(tài)數(shù)據(jù)綁定方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09JS簡單實現(xiàn)滑動加載數(shù)據(jù)的方法示例
這篇文章主要介紹了JS簡單實現(xiàn)滑動加載數(shù)據(jù)的方法,涉及javascript事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)技巧,需要的朋友可以參考下2017-10-10JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞)
這篇文章主要介紹了JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞),需要的朋友可以參考下2023-05-05關(guān)于微信小程序?qū)崿F(xiàn)云支付那些事兒
我們在做小程序支付相關(guān)的開發(fā)時,總會遇到這些難題,下面這篇文章主要給大家介紹了關(guān)于微信小程序?qū)崿F(xiàn)云支付那些事兒,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2021-09-09