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

javascript 兼容FF的onmouseenter和onmouseleave的代碼

 更新時間:2008年07月19日 19:33:32   作者:  
經(jīng)過測試發(fā)現(xiàn),例子1 在 ff下抖動的厲害,ie下稍微有點。 具體原因 其實就是 mouseout 的冒泡機制 引起的。

IE下有 onmouseenter和onmouseleave來解決。
可惜ff就沒有。  我再想 , 為什么這么好的功能,為什么ff不引用呢?
還有ie中的onpropertychange  ,哎,ff中都沒有。。。

對比例子中引入了一段js ,來兼容FF的onmouseenter和onmouseleave. :
復(fù)制代碼 代碼如下:

var xb =
{
    evtHash: [],

    ieGetUniqueID: function(_elem)
    {
        if (_elem === window) { return 'theWindow'; }
        else if (_elem === document) { return 'theDocument'; }
        else { return _elem.uniqueID; }
    },

    addEvent: function(_elem, _evtName, _fn, _useCapture)
    {
        if (typeof _elem.addEventListener != 'undefined')
        {
            if (_evtName == 'mouseenter')
                { _elem.addEventListener('mouseover', xb.mouseEnter(_fn), _useCapture); }
            else if (_evtName == 'mouseleave')
                { _elem.addEventListener('mouseout', xb.mouseEnter(_fn), _useCapture); } 
            else
                { _elem.addEventListener(_evtName, _fn, _useCapture); }
        }
        else if (typeof _elem.attachEvent != 'undefined')
        {
            var key = '{FNKEY::obj_' + xb.ieGetUniqueID(_elem) + '::evt_' + _evtName + '::fn_' + _fn + '}';
            var f = xb.evtHash[key];
            if (typeof f != 'undefined')
                { return; }

            f = function()
            {
                _fn.call(_elem);
            };

            xb.evtHash[key] = f;
            _elem.attachEvent('on' + _evtName, f);

            // attach unload event to the window to clean up possibly IE memory leaks
            window.attachEvent('onunload', function()
            {
                _elem.detachEvent('on' + _evtName, f);
            });

            key = null;
            //f = null;   /* DON'T null this out, or we won't be able to detach it */
        }
        else
            { _elem['on' + _evtName] = _fn; }
    },    

    removeEvent: function(_elem, _evtName, _fn, _useCapture)
    {
        if (typeof _elem.removeEventListener != 'undefined')
            { _elem.removeEventListener(_evtName, _fn, _useCapture); }
        else if (typeof _elem.detachEvent != 'undefined')
        {
            var key = '{FNKEY::obj_' + xb.ieGetUniqueID(_elem) + '::evt' + _evtName + '::fn_' + _fn + '}';
            var f = xb.evtHash[key];
            if (typeof f != 'undefined')
            {
                _elem.detachEvent('on' + _evtName, f);
                delete xb.evtHash[key];
            }

            key = null;
            //f = null;   /* DON'T null this out, or we won't be able to detach it */
        }
    },

    mouseEnter: function(_pFn)
    {
        return function(_evt)
        {
            var relTarget = _evt.relatedTarget;                
            if (this == relTarget || xb.isAChildOf(this, relTarget))
                { return; }

            _pFn.call(this, _evt);
        }
    },

    isAChildOf: function(_parent, _child)
    {
        if (_parent == _child) { return false };

        while (_child && _child != _parent)
            { _child = _child.parentNode; }

        return _child == _parent;
    }    
};
本篇文章來源于 cssrain.cn 原文鏈接:http://www.cssrain.cn/article.asp?id=952

相關(guān)文章

  • JavaScript實現(xiàn)動態(tài)留言板

    JavaScript實現(xiàn)動態(tài)留言板

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)動態(tài)留言板,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 小程序按鈕避免多次調(diào)用接口和點擊方案實現(xiàn)(不用showLoading)

    小程序按鈕避免多次調(diào)用接口和點擊方案實現(xiàn)(不用showLoading)

    這篇文章主要介紹了小程序按鈕避免多次調(diào)用接口和點擊方案實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 用JS實現(xiàn)貪吃蛇小游戲

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

    這篇文章主要為大家詳細介紹了用JS實現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • js?indexOf?的正確用法示例詳解

    js?indexOf?的正確用法示例詳解

    indexOf()?方法可返回某個指定的字符串值在字符串中首次出現(xiàn)的位置,這篇文章主要介紹了js?indexOf?的正確用法,需要的朋友可以參考下
    2023-02-02
  • 利用js實現(xiàn)簡易紅綠燈

    利用js實現(xiàn)簡易紅綠燈

    這篇文章主要介紹了利用js實現(xiàn)簡易紅綠燈,幫助大家更好的利用js制作特效,美化網(wǎng)頁,感興趣的朋友可以了解下
    2020-10-10
  • javascript獲取所有同類checkbox選項(實例代碼)

    javascript獲取所有同類checkbox選項(實例代碼)

    javascript獲取所有同類checkbox選項的簡單實例。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-11-11
  • js取滾動條的尺寸的函數(shù)代碼

    js取滾動條的尺寸的函數(shù)代碼

    js取滾動條的尺寸的函數(shù)代碼,需要的朋友可以參考下。
    2011-11-11
  • js獲取最近一周一個月三個月時間的簡單示例

    js獲取最近一周一個月三個月時間的簡單示例

    時間的獲取和格式化是我們經(jīng)常遇到的問題,下面這篇文章主要給大家介紹了關(guān)于利用js如何獲取最近一周一個月三個月時間的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • layui 給數(shù)據(jù)表格加序號的方法

    layui 給數(shù)據(jù)表格加序號的方法

    今天小編就為大家分享一篇layui 給數(shù)據(jù)表格加序號的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 微信小程序?qū)崿F(xiàn)音樂播放頁面布局

    微信小程序?qū)崿F(xiàn)音樂播放頁面布局

    這篇文章主要為大家詳細介紹了JS實現(xiàn)京東商品分類側(cè)邊欄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論