此脚本适用于除IE以外的所有其他浏览器:
nav.addEventListener('mouseover',function(e) {
switch(e.target.id) {
case 'aGallery':
navOpacity.style.backgroundColor = "red";
break;
case 'aContact':
navOpacity.style.backgroundColor = "green";
break;
case 'aAbout':
navOpacity.style.backgroundColor = "yellow";
break;
case 'aHome':
navOpacity.style.backgroundColor = "#CC33CC";
break;
}
},false);
在IE中,backgroundcolor在悬停时不会改变。
有什么想法吗?
答案 0 :(得分:3)
在IE中,您必须使用attachEvent
而不是标准addEventListener
。并使用srcElement
代替target
进行IE浏览。
试试这个。
function mouseOverHandler(e) {
switch((e.target || e.srcElement).id) {
case 'aGallery':
navOpacity.style.backgroundColor = "red";
break;
case 'aContact':
navOpacity.style.backgroundColor = "green";
break;
case 'aAbout':
navOpacity.style.backgroundColor = "yellow";
break;
case 'aHome':
navOpacity.style.backgroundColor = "#CC33CC";
break;
}
}
if (el.addEventListener){
el.addEventListener('mouseover', mouseOverHandler, false);
}
else if (el.attachEvent){
el.attachEvent('onmouseover', mouseOverHandler);
}
答案 1 :(得分:1)
IE使用事件的'on'版本,行onclick
,onmouseover
。应该有你的问题。
此外,IE(版本9之前)不支持addEventListener
。您必须使用attachEvent
。
将此代码视为起点:
if (el.addEventListener){
el.addEventListener('click', myFunc);
} else if (el.attachEvent){
el.attachEvent('onclick', myFunc);
}