AとBというボタン(画像)があります。それぞれのボタンは通常の状態とアクティブ状態の2つの画像があり
AとBで計4つのボタンがあります。
初めの状態はAのボタンがアクティブ状態でAの内容がページ内のしかるべき場所に表示されています。
Bのボタンをクリックした際にはBのボタンがアクティブ状態になりAのボタンは通常状態に戻り
Bの内容がinnerhtmlを使用してAの内容が表示されている場所にBの内容が表示されるというような感じにしたいのですが
innerhtmlを使用してAとBの内容の切り替えはできたのですがAとBのボタンの状態の切り替え方がうまくできないのです。
どなたかサンプルをご提示していただきアドバイスいただけると助かります。
ちなみに今回はボタン2つで説明させていただきましたが
将来的にはボタンは10個位になる予定です。
No.2ベストアンサー
- 回答日時:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>サンプル</title>
<body>
<div id="btn">
<img src="kin.jpg" width="620" height="50" alt="kin.jpg" id="t0">
<img src="gin.jpg" width="620" height="50" alt="gin.jpg" id="t1">
<img src="dou.jpg" width="620" height="50" alt="dou.jpg" id="t2">
</div>
<div id="txt"></div>
<script type="text/javascript">
//@cc_on
//全角空白は適当に変換のこと
/*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'load', function(){
var t = document.getElementById('btn');
var d = document.getElementById('txt');
var i = t.getElementsByTagName('img');
var r0 = /\.jpg$/;
var r1 = /_r\.jpg$/;
var text = {
't0':'これは1個目の画像のコメントです。',
't1':'これは2個目の画像のコメントです。',
't2':'これは3個目の画像のコメントです。'
}
d.innerHTML = text.t0;
t./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'click', function(evt){
var e = evt./*@if(@_jscript) srcElement @else@*/ target /*@end@*/;
var c = 0;
var o;
if('IMG' == e.tagName) {
while (o = i[c++]) {
o.src = o == e ? o.src.match(r1) ? o.src: o.src.replace(r0,'_r.jpg'): o.src.replace(r1, '.jpg');
o.alt = o.src;//確認用
}
d.innerHTML = text[e.id];
}
}, false);
}, false);
</script>
No.1
- 回答日時:
面白そうだったので書いてみました。
自由度は高くしたつもりなので適に書き換えて使ってください。
<span id="buttonFoo"><img src="activebuttonFoo.png" onClick="activate('Foo')"></span>
<span id="buttonBar"><img src="inactivebuttonBar.png" onClick="activate('Bar')"></span>
<span id="buttonHoge"><img src="inactivebuttonHoge.png" onClick="activate('Hoge')"></span>
<script>
buttons=["Foo","Bar","Hoge"]
function activate(which){
/**/ document.getElementById("button"+which).innerHTML=buttonhtml(which,true);
/**/ for(i=0;i<buttons.length;i++){
/**/ /**/ if(buttons[i]!=which){
/**/ /**/ /**/ deactivate(buttons[i]);
/**/ /**/ }
/**/ }
}
function deactivate(which){
/**/ document.getElementById("button"+which).innerHTML=buttonhtml(which,false);
}
function buttonhtml(which,isactive){
/**/ if(isactive)
/**/ /**/ return "<img src=\"activebutton"+which+".png\" onClick=\"activate('"+which+"')\">";
/**/ else
/**/ /**/ return "<img src=\"inactivebutton"+which+".png\" onClick=\"activate('"+which+"')\">";
}
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Q&Aフォームを作成したいのですが、どう設計してよいか分かりません、アドバイスお願い致します。 1 2023/07/27 19:04
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- その他(パソコン・周辺機器) X6 ブルートゥースレシーバー(画像あり) の、使い方を教えてください。 ボタンは、ペアリング時のボ 5 2023/04/19 19:11
- gooメール Gメールログインの件 2 2022/07/08 23:44
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(生活家電) テレビリモコンのボタン修理 6 2022/05/02 22:30
- ノートパソコン Windows10のノートパソコンをさっきまで使っていて、指紋がついてたからぱっぱっとティッシュでキ 6 2022/07/13 01:52
- その他(パソコン・周辺機器) 光学ドライブのトレー取り出しボタンの効きが悪い 2 2022/11/18 14:48
- ノートパソコン PCで音量調節ボタンを押しても「現在の音量がいくつか」が表示されません。 2 2023/03/18 12:10
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
連続したURLへのwindow.openの...
-
jQueryでサーバー上のファイル...
-
jQueryで画像を重ねる
-
embed要素のsrc属性の値を変更...
-
チェックボックスに入っている...
-
画像をクリックしてその地点の...
-
removeEventListenerについて
-
オンマウスオーバーで画像を表示
-
MAX関数を使ってからLEFT JOIN...
-
テキストエリア内の一部の文字...
-
【コーディング】途中から位置...
-
iframe内のリンク文字のマウス...
-
divのheight指定で画面一杯に表...
-
VC++2005で画面上にGIF画像(透...
-
Colorboxがうまく設置できません
-
スクロール可能なチェックボックス
-
【CSS】floatで左右に並べた...
-
eclipseでcssを使うためには?
-
画像ランダム表示、しかしダブ...
-
背景色を透明化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openで値の渡し方を教え...
-
JavaScriptで画面サイズによっ...
-
jQueryでサーバー上のファイル...
-
画像と文字を同時に切り替えたい
-
インラインフレームでのクッキ...
-
setAttributeによる画像の差し替え
-
【jQuery】複数の画像の読み込...
-
JAVAで画像をボタンで切り替え...
-
画像の座標位置取得
-
連番画像「次へ」「前へ」で、...
-
imgのsrcに値を設定するには
-
画像をクリックすると別ウイン...
-
複数のボールの落下、バウンド...
-
連続したURLへのwindow.openの...
-
JavaScriptで画像置換えてクリ...
-
<img src"○.jpg">の○をランダム...
-
スライドショーにフェード効果...
-
jQueryで画像を重ねる
-
クリッカブルマップでリモート...
-
複数のバナーをリロードする度...
おすすめ情報