我正在尝试使用 javascript 更改元素的类。到目前为止,我正在做:
var link = document.getElementById("play_link");
link.className = "play_button";
编辑:这是替换类名的实际代码
在 HTML 中:
<a href="#play_link_<%=i%>" id="play_link_<%=i%>"onclick="changeCurrentTo(<%=i%>);return false;" class="play_button"></a>
在 Javascript 函数中 changeCurrentTo(id){ activatePlayButton(current_track); current_track = id; inactivatePlayButton(current_track); }
function inactivatePlayButton(id){
document.getElementById("recording_"+id).style.backgroundColor="#F7F2D1";
var link = document.getElementById("play_link_"+id);
link.className="stop_button";
link.onclick = function(){stopPlaying();return false;};
}
function activatePlayButton(id){
document.getElementById("recording_"+id).style.backgroundColor="";
var link = document.getElementById("play_link_"+id);
link.className = "play_button";
var temp = id;
link.onclick = function(){changeCurrentTo(temp);return false;};
}
和
.play_button{
background:url(/images/small_play_button.png) no-repeat;
width:25px;
height:24px;
display:block;
}
老班是
.stop_button{
background:url(/images/small_stop_button.png) no-repeat;
width:25px;
height:24px;
display:block;
}
上下文是一个音乐播放器。当您单击播放按钮(三角形)时,它会变成一个停止按钮(正方形)并替换调用的函数。
问题是类发生了变化,但在 IE6 和 7 中,新背景(此处为 /images/small_play_button.png)不会立即显示。有时它甚至根本不显示。有时它不显示,但如果我稍微摇晃鼠标,它就会显示。
它在 FF、Chrome、Opera 和 Safari 中完美运行,所以它是一个 IE 错误。我知道很难从这些信息中立即分辨出来,但如果我能得到一些有用的指示和方向的话。
谢谢-