时间:2021-05-28
IE下有onmouseenter和onmouseleave来解决。
可惜ff就没有。我再想,为什么这么好的功能,为什么ff不引用呢?
还有ie中的onpropertychange,哎,ff中都没有。。。
对比例子中引入了一段js,来兼容FF的onmouseenter和onmouseleave.:
复制代码 代码如下:
varxb=
{
evtHash:[],
ieGetUniqueID:function(_elem)
{
if(_elem===window){return'theWindow';}
elseif(_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);}
elseif(_evtName=='mouseleave')
{_elem.addEventListener('mouseout',xb.mouseEnter(_fn),_useCapture);}
else
{_elem.addEventListener(_evtName,_fn,_useCapture);}
}
elseif(typeof_elem.attachEvent!='undefined')
{
varkey='{FNKEY::obj_'+xb.ieGetUniqueID(_elem)+'::evt_'+_evtName+'::fn_'+_fn+'}';
varf=xb.evtHash[key];
if(typeoff!='undefined')
{return;}
f=function()
{
_fn.call(_elem);
};
xb.evtHash[key]=f;
_elem.attachEvent('on'+_evtName,f);
//attachunloadeventtothewindowtocleanuppossiblyIEmemoryleaks
window.attachEvent('onunload',function()
{
_elem.detachEvent('on'+_evtName,f);
});
key=null;
//f=null;
}
else
{_elem['on'+_evtName]=_fn;}
},
removeEvent:function(_elem,_evtName,_fn,_useCapture)
{
if(typeof_elem.removeEventListener!='undefined')
{_elem.removeEventListener(_evtName,_fn,_useCapture);}
elseif(typeof_elem.detachEvent!='undefined')
{
varkey='{FNKEY::obj_'+xb.ieGetUniqueID(_elem)+'::evt'+_evtName+'::fn_'+_fn+'}';
varf=xb.evtHash[key];
if(typeoff!='undefined')
{
_elem.detachEvent('on'+_evtName,f);
deletexb.evtHash[key];
}
key=null;
//f=null;
}
},
mouseEnter:function(_pFn)
{
returnfunction(_evt)
{
varrelTarget=_evt.relatedTarget;
if(this==relTarget||xb.isAChildOf(this,relTarget))
{return;}
_pFn.call(this,_evt);
}
},
isAChildOf:function(_parent,_child)
{
if(_parent==_child){returnfalse};
while(_child&&_child!=_parent)
{_child=_child.parentNode;}
return_child==_parent;
}
};
本篇文章来源于cssrain.cn原文链接:http://www.cssrain.cn/article.asp?id=952
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在IE里有onmouseleave和onmouseenter,而对于要兼容各大浏览器的Web开发人员来说还是一件头疼的事。虽然网上已经有针对MozillaFir
JavaScript无缝上下滚动加定高定宽停顿效果(兼容ie/ff)JavaScript无缝上下滚动加定高定宽停顿效果(兼容ie/ff)body{font-si
测试浏览器:ie8(兼容和不兼容模式),ff6。复制代码代码如下:varchk=document.createElement("input");chk.setA
主要解决了浏览器兼容,现在可以兼容IE678FF谷歌(废话)IE浏览器里,this指向问题。直接上代码吧!复制代码代码如下:varbind=function(o
1.window.event兼容脚本functiongetEvent(){//获取浏览器事件,同时兼容ie和ff的写法if(document.all)retur