Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用javascript更改背景颜色_Php_Javascript_Html_Css_Internet Explorer - Fatal编程技术网

Php 使用javascript更改背景颜色

Php 使用javascript更改背景颜色,php,javascript,html,css,internet-explorer,Php,Javascript,Html,Css,Internet Explorer,此脚本在除IE以外的所有其他浏览器中都能正常工作: nav.addEventListener('mouseover',function(e) { switch(e.target.id) { case 'aGallery': navOpacity.style.backgroundColor = "red"; break; case 'aContact': navO

此脚本在除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中,悬停时背景色不会改变


有什么想法吗?

IE对事件使用“开启”版本,行
onclick
onmouseover
。这应该是你的问题

此外,IE(版本9之前)不支持
addEventListener
。您必须使用
attachEvent

将此代码作为起点:

if (el.addEventListener){
  el.addEventListener('click', myFunc);
} else if (el.attachEvent){
  el.attachEvent('onclick', myFunc);
}

IE对事件使用“开启”版本,行
onclick
onmouseover
。这应该是你的问题

此外,IE(版本9之前)不支持
addEventListener
。您必须使用
attachEvent

将此代码作为起点:

if (el.addEventListener){
  el.addEventListener('click', myFunc);
} else if (el.attachEvent){
  el.attachEvent('onclick', myFunc);
}

在IE中,您必须使用
attachEvent
而不是标准的
addEventListener
。对于IE,使用
srcement
而不是
target

试试这个

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);
}

在IE中,您必须使用
attachEvent
而不是标准的
addEventListener
。对于IE,使用
srcement
而不是
target

试试这个

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);
}

如果可能,我建议使用jQuery。它为您解决了类似的问题,使它在大多数浏览器(包括IE)中都能正常工作。可能有帮助:如果可能,我建议使用jQuery。它可以为您解决类似的问题,使其在大多数浏览器中都能正常工作,包括IE。可能有帮助:另一个问题是IE使用
event.srcElement
而不是W3C标准
target
属性。另一个问题是IE使用
event.srcElement
而不是W3C标准
target
属性。有朝一日,我们应该聚在一起,组成某种委员会来制定浏览器标准!所有的浏览器都可以跟随它们!总有一天,我们应该聚在一起,组成某种委员会来制定浏览器标准!所有的浏览器都可以跟随它们!