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 のバグです。これらの情報だけですぐに判断するのは難しいことは承知していますが、参考になるヒントや指示を得ることができれば.
ありがとう-