我有4个图像用作导航菜单,当我点击它时会点亮(更改图像)并且当前熄灭,依此类推。
它适用于chrome和ff(没有firebug错误)
但是在IE8中点击的功能(它改变了div的视图)工作它只是不改变img src这里的代码:
<li id="bulletli1">
<a href="#">
<img id="bullethover1" src="img/bulleto.png" height="30px" width="30px" style="position:absolute">
<img id="bullet1" name="bullet1" height="30px" width="30px" src="img/bulletwhite.png" onmousedown="this.src='img/bulletwhite.png';document.images['bullet2'].src='img/bullet.png';document.images['bullet3'].src='img/bullet.png';document.images['bullet4'].src='img/bullet.png'" style="opacity:0.4;filter:alpha(opacity=40)"/>
</a></li>
所以基本上发生的事情就是在onmousedown中,this.src设置为白色子弹,所有其他设置为黑暗子弹点。开发人员的工具中没有错误。
this.src在IE8中不起作用吗?任何建议都会有所帮助,谢谢!
答案 0 :(得分:1)
您不应该像这样将JS嵌入到代码中。虽然我建议使用像jQuery这样的库(这将使你的生活更轻松),但我会解释它。
不要将JS嵌入到代码中。如果你真的需要,让它调用这样的函数:
<img id="bullet1" name="bullet1" height="30px" width="30px" src="img/bulletwhite.png" onmousedown="bulletClicked()" style="opacity:0.4;filter:alpha(opacity=40)"/>
然后在脚本标记之间的头部区域中,您将运行javascript:
function bulletClicked() {
this.src='img/bulletwhite.png';
document.images['bullet2'].src='img/bullet.png';
document.images['bullet3'].src='img/bullet.png';
document.images['bullet4'].src='img/bullet.png';
}
从它看起来,你会以错误的方式解决这个问题,你可能会将onclikc代码放入每个子弹图像中,对每个子弹图像进行略微修改。相反,如果您只是使用了事件,那么就会简化。
如果你做了类似这样的事情......(并在样式部分中指定了你的身高,宽度和其他CSS,它们属于你所做的事情,再次)
<img id="bullet1" name="bullet1" src="img/bulletwhite.png" onmousedown="bulletClicked(this)"/>
那你的javascript就可以......
function bulletClicked(e) {
document.images['bullet1'].src='img/bullet.png';
document.images['bullet2'].src='img/bullet.png';
document.images['bullet3'].src='img/bullet.png';
document.images['bullet4'].src='img/bullet.png';
e.src='img/bulletwhite.png';
}
有更好的方法可以解决这类问题,我非常建议你选择jQuery并做一些工作来分离页面的HTML,JavaScript和CSS组件。
答案 1 :(得分:1)
我无法重现所描述的行为。图像似乎被替换好了。您可以提供任何进一步的细节?点击其他3张图片后会发生什么?他们是否直接获得了他们的图片网址?
答案 2 :(得分:1)
请检查,如果不存在多个具有相同名称/ id-Attribute的图像。
在这种情况下,IE会使用相同名称的图像的最后(注意document.images ['somename']可以是一个数组),而其他UserAgents将采用<强>先一。 也许在这种情况下,您只看不到更改,例如,如果更改的图像位于视口之外。
招呼