※ ChatGPTを利用し、要約された質問です(原文:onClickで指定した以外の画像も変わってしまう)
onClickで指定した以外の画像も変わってしまう
onClickで指定した以外の画像も変わってしまう
Youtubeの動画をボタンを使って切り替えるように設定しています。
==========
Youtube動画表示
==========
ボタン1 ボタン2 ボタン3
という感じで配列しています。
ボタン1~3は、それぞれ同じ画像で表示しています。
btn.png:OFF時
btn_on.png:ON時
Javascriptは下記のように書いています。
================
function change(obj){
var orgimg="img/btn.png";
var newimg="img/btn_on.png";
var imgs=document.getElementsByTagName('img')
for(var i=0;i<imgs.length;i++){
if(imgs[i].className==obj.className){
if(imgs[i]==obj) imgs[i].src=newimg;
else imgs[i].src=orgimg;
}
}
};
================
ボタン部分はそれぞれ下記のようにしています。
================
<a href="http://www.youtube.com/watch?v=1111111" onclick="return Obj.replaceObject(this.href);"><img src="img/btn_on.png" width="16" height="15" border="0" alt="movie 1" onClick="change(this)"></a>
<a href="http://www.youtube.com/watch?v=2222222" onclick="return Obj.replaceObject(this.href);"><img src="img/btn.png" width="16" height="15" border="0" alt="movie 2" onClick="change(this)"></a>
<a href="http://www.youtube.com/watch?v=3333333" onclick="return Obj.replaceObject(this.href);"><img src="img/btn.png" width="16" height="15" border="0" alt="movie 3" onClick="change(this)"></a>
================
これでちゃんとクリックしたボタンのみがON時の画像になり、それ以外はOFF時の画像に戻るのですが
同ページ上に表示している全く関係ない画像(例えばタイトル画像やバナー等)が
何故かOFF時の画像が拡大された状態のもの(タイトルやバナーで指定してあるサイズ)に切り替わってしまいます。
CSSで背景に指定してある画像やボタン設定してある画像は大丈夫なのですが
普通にHTML上に指定してあるJPGやPNG画像が変わってしまいます。。。
どこかおかしな部分があると思うのですがわからず途方にくれております。
何方か教えて下さい。どうぞ宜しくお願いします。
お礼
ご指摘ありがとうございます。 確かにclass指定がされていませんでした。 さっそく指定した所、無事ちゃんと動作しました! onClickをリンクと画像それぞれに指定しているのですが こちらはひとつにまとめてみた所、動かなくなってしまいました... うまいまとめ方がわからなかったので、とりあえず別々で指定しています。 もっと勉強しないとですね。 ありがとうございました!