javascriptにフェードインを追加したい。

このQ&Aのポイント
  • クリックでテキストが切り替わるjavascriptにフェードイン効果を追加したい。
  • 切り替わった際にボタンの背景を変更するためにCSSの.actveを追加したい。
  • 改造したjavascriptの限界を感じており、アドバイスを求めています。
回答を見る
  • ベストアンサー

javascriptにフェードインを追加したい。

下記のjavascriptに、フェードイン効果を追加するにはどうすればいいでしょうか? 現在は、クリックで、テキストが切り替わる仕様になっているんですが、これにフェードイン、フェードアウトの機能を付け加えたいです。 また、切り替わった際に下記のようにCSSの.actveをclass=""に追加させたいのですが、 どうすれば可能でしょうか? 目的は、アクティブになったボタンの背景を変更したい為です。 <div class="button actve"><a href="#" onclick="checkd1();return ChDsp2('text1','textALL');">ボタン1</a></div> 【javascript】 function ChDsp2(strShow,classHidden){ var tags=document.getElementsByTagName("div"); for(var i=0;i<tags.length;i++){ if(tags[i].className.match('textALL')){ tags[i].className=tags[i].className.replace(/hide/,"").replace(/^\s+|\s+$/,""); if(tags[i]!=document.getElementById(strShow)) tags[i].className+=' hide'; } } return false; } function checkd1(){ document.FORM.CHECK1.checked=true document.FORM.CHECK2.checked=false document.FORM.CHECK3.checked=false } function checkd2(){ document.FORM.CHECK1.checked=false document.FORM.CHECK2.checked=true document.FORM.CHECK3.checked=false } function checkd3(){ document.FORM.CHECK1.checked=false document.FORM.CHECK2.checked=false document.FORM.CHECK3.checked=true } function change(c) { var f = c.checked, btn = c.form.elements['btn1']; btn.disabled = f?false:true; f = f?'sozai/button_2.jpg':'sozai/button_1.jpg'; btn.style.backgroundImage = 'url(' + f + ')'; } 【HTML】 <div class="button"><a href="#" onclick="checkd1();return ChDsp2('text1','textALL');">ボタン1</a></div> <div class="button"><a href="#" onclick="checkd2();return ChDsp2('text2','textALL');">ボタン2</a></div> <div class="button"><a href="#" onclick="checkd3();return ChDsp2('text3','textALL');">ボタン3</a></div> <div class="clear">&nbsp;</div> <div class="area"> <form name="FORM"> <div id="text1" class="textALL"> その1、ここは最初に表示されています。 </div> <div id="text2" class="textALL hide"> その2、ここはボタン2をクリックで表示されます。 </div> <div id="text3" class="textALL hide"> その2、ここはボタン3をクリックで表示されます。 </div> </form> </div> 上記は、以前頂いたプログラムをわかる範囲で改造したものなのですが、 限界を感じまして、どなたか教えて頂けたら助かります。 宜しくお願いします。

  • egtomo
  • お礼率59% (101/170)

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 なんだかよくわからないので、参考にもならないかも知れませんが… (勝手に仮定しています。) ◇ HTML(テスト用) <div id="group1"> <a href="#text1" class="actve">1を表示</a> <a href="#text2">2を表示</a> <a href="#text3">3を表示</a> </div> <hr> <div id="group2"> <a href="#text4">4を表示</a> <a href="#text5">5を表示</a> <a href="#text6">6を表示</a> </div> <hr> <div id="text1">111111</div> <div id="text2">222222</div> <div id="text3">333333</div> <div id="text4">444444</div> <div id="text5">555555</div> <div id="text6">666666</div> ◇ javascript(jQueryを使用しています) //違うところは適当に修正してみてください。 (全角空白は半角に) (function($){ var speed = 1000,   active = "actve",   n_active = ":not(." + active + ")",   getTarget = function(elm){    var h, r = $("");    elm.each(function(){     if(h=$(this).attr("href").match(/#.+$/)) r = r.add(h[0]);    });    return r;   }; $.fn.extend({  changer : function(){   var t = $(this).children("a");   getTarget(t.filter(n_active)).hide();   t.click(function(){    var elm, func, t = $(this);    getTarget(t.parent().children("a")).queue([]).stop(1,1);    func = function(){     getTarget(t.addClass(active)).fadeIn(speed);    };    elm = getTarget(t.siblings("."+active).removeClass(active));    if(elm.length) elm.fadeOut(speed, func); else func();    return false;   });  } }); })(jQuery); // ************************************** //設定(テスト用) $(function(){  $("#group1").changer();  $("#group2").changer(); });

egtomo
質問者

お礼

ありがとうございます。 上記を元にカスタマイズでうまく表現できました。 本当に助かりました。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ご提示の内容だとわからないところが多すぎて… ・なぜ表示対象がform要素の中にあるのか ・checkdとの関係はどうなっているのか ・textALLってわざわざ指定してるみたいだけれど、ドキュメントのあちこちに散らばって  いるもの全部が対象なのか、id指定されているものだけが対象なのか などなど… 何がどうなっているのかわからないので、具体的には書きようがありませんが、jqueryなどのライブラリを利用してしまえばフェード効果なども比較的簡単に実現できます。 例えば  フェードイン:  $(要素のセレクタ).fadeIn();  フェードアウト: $(要素のセレクタ).fadeOut(); 程度の記述で実現可能です。  http://api.jquery.com/fadeIn/  http://api.jquery.com/fadeOut/ また、クラスの設定・削除に関しても .addClass(class)、 .removeClass(class) で可能です。

egtomo
質問者

お礼

度々すみません。 上記も間違っておりました。 こちらになります。 <style> .hide{display:none;} </style> <script> function ChDsp2(strShow,classHidden){ var tags=document.getElementsByTagName("div"); for(var i=0;i<tags.length;i++){ if(tags[i].className.match('textALL')){ tags[i].className=tags[i].className.replace(/hide/,"").replace(/^\s+|\s+$/,""); if(tags[i]!=document.getElementById(strShow)) tags[i].className+=' hide'; } } return false; } </script> <a href="#" onclick="return ChDsp2('text1','textALL');">1を表示</a> <a href="#" onclick="return ChDsp2('text2','textALL');">2を表示</a> <a href="#" onclick="return ChDsp2('text3','textALL');">3を表示</a> <div id="text1" class="textALL">111111</div> <div id="text2" class="textALL hide">222222</div> <div id="text3" class="textALL hide">333333</div>

egtomo
質問者

補足

すいません。 これは、チェックボックスを使うためにカスタマイズした媒体でした。 下記が今回使おうとしているものです。 function ChDsp2(strShow,classHidden){ var tags=document.getElementsByTagName("div"); for(var i=0;i<tags.length;i++){ if(tags[i].className.match('textALL')){ tags[i].className=tags[i].className.replace(/hide/,"").replace(/^\s+|\s+$/,""); if(tags[i]!=document.getElementById(strShow)) tags[i].className+=' hide'; } } return false; } <div class="button"><a href="#" onclick="checkd1();return ChDsp2('text1','textALL');">ボタン</a></div> <div class="button"><a href="#" onclick="checkd2();return ChDsp2('text2','textALL');">ボタン2</a></div> <div class="button"><a href="#" onclick="checkd3();return ChDsp2('text3','textALL');">ボタン3</a></div> <div class="clear">&nbsp;</div> <div class="area"> <div id="text1" class="textALL">ボタン</div> <div id="text2" class="textALL hide">ボタン2で表示</div> <div id="text3" class="textALL hide">ボタン3で表示</div> </div> になります。 textALLがついている箇所にhideが入るか取り外す仕組みになっているようです。 なので、他の場所に設置してしまうと非表示になってしまう為、 ここでしか使わないクラス名に変更しました。

関連するQ&A

  • JavascriptでInputClassの表示を変えるには

     以下のScriptを作りました。Tagの表示情報をScriptで変更したいのです。以下のdiv class="inC1"は変更されます。input class="inIPC2も変更したいのですが、どうもやり方が異なるようです。  申し訳ありませんがご教授願います。 <html> <head> <title>エレメントの表示</title> </head> <body> <script type="text/javascript"> function Disp_change() { var i = 0, div = document.getElementsByTagName("DIV"); while (div[i]) { if (div[i].className=="inC1") div[i].innerHTML = "change1"; i++; } } function Disp_change_Class() { var i = 0, div = document.getElementsByTagName("DIV"); while (div[i]) { if (div[i].className=="inIPC2") div[i].innerHTML = "change2"; i++; alert ("change2"); } } </script> <body> <div class="frameHead frameDetail"> <div class="inC1">連絡情報</div> <div class="clear"><hr /></div> <div class="inC2"> <input class="button3" type="button" name="fromUserList" value="" onclick="Disp_change()"> <input class="inIPC2">連絡情報</div> </div> <script type="text/javascript"> Disp_change(); Disp_change_Class(); }; </script> </script> </body> </html>  一応動きますので確認してみてくだされば幸いです。 以上、宜しく御願い致します。

    • ベストアンサー
    • Java
  • javascriptで文字を拡大・縮小させるには?

    最近、アクセシビリティを考慮して、ブラウザの機能上だけでなく、 javascriptを使用した、文字を拡大・縮小するボタンがついているHPを良く拝見します。そこで、作成してみたのですが、どうもうまく機能してくれません。 下記のようにテキストのみの簡単なソースなら OKなのですが、表の中の文字なども同じように拡大・縮小 させたりするにはどうしたらよいでしょうか? お詳しい方がいらっしゃいましたらどうぞ宜しくご指導お願いします。 <style type="text/css"> <!-- .btn { width:100px; } --> </style> <script type="text/javascript"><!-- fsize = 100; function sizech(val) { fsize = fsize + eval(val); if(fsize < 40 ) { alert("これ以上小さくできません"); fsize = 40; return false; } if(fsize > 200) { alert("これ以上大きくできません"); fsize = 200; return false; } if(val == "0") fsize = 100; document.body.style.fontSize = fsize + "%"; } //--> </script><LINK rel="stylesheet" href="table.css" type="text/css" id="_HPB_TABLE_CSS_ID_"> </HEAD> <body id="bd"> <div><form> <input type="button" class="btn" value="縮小" onclick="sizech('-20')"> <input type="button" class="btn" value="default" onclick="sizech('0')"> <input type="button" class="btn" value="拡大" onclick="sizech('+20')"> </form></div> <P align="center">aaaa<BR> </P>

  • Bootstrap Javascriptでモーダル

    Bootstrap で下記のようにモーダルポップアップを使っています。 呼び出される要素の中にテキストボックスを置いているのですが、 入力後、閉じて、再度開くと当然、入力された値が表示されます。 常にテキストボックスの値をクリアしてから表示したいのですが、 javascriptからbasicModalを表示する方法が分かりません。 どのようにすれば良いでしょうか。 <a href="#" class="btn btn-lg btn-success" data-toggle="modal" data-target="#basicModal">選択</a> <div class="modal fade" id="basicModal" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <input id="Text1" type="text" value="" name="gyo_cef" /> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">閉じる</button> </div> </div> </div> </div>

  • javascript ボタンを非表示にしたい

    javascriptを学習しています。 3回目以降は追記できないようにしましたが、ボタンを非表示に出来ておりません。 どなたかご教授お願いいたします。 <!DOCTYPE html> <html> <head> <title>アカウント登録</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div class="base container"> <div class="row"> <h1>アカウント登録</h1> </div> <div class="row"> <div class="card" id="card"> <div class="card-block"> <form id="form-area" class="form-inline" method="post"> <div class="form-group"> <div class="input-group"> <input id="namae" name="namae" type="text" class="form-control" placeholder="名前"> </div> </div> <div class="form-group"> <div class="input-group"> <input id="nickname" name="nickname" type="text" class="form-control" placeholder="ニックネーム"> </div> </div> <div class="form-group"> <input id="tuikaBtn" type="button" name="touroku" value="追加"> </div> <table id="result-table"> <thead> <tr> <th>名前</th> <th>ニックネーム</th> <th>削除</th> </tr> </thead> </table> </form> <div id="tuikaMoto"> </div> <div id="result"></div> </div> </div> </div> </div> </div> <div id="overLay"> </div> <script> class NameTable { constructor() { this.data = []; this.table = document.getElementById('result-table'); this.tbody = this.table.createTBody(); this.btn = document.getElementById("tuikaBtn"); this.input_namae = document.getElementById("namae"); this.input_nickname = document.getElementById("nickname"); } handleEvent(e) { if (e.target === this.btn) { const name_value = this.input_namae.value, nickname_value = this.input_nickname.value; if (this.checkTsuika(name_value, nickname_value)) { this.pushData(name_value, nickname_value); this.createTable(); }; } else if (e.target.matches('.del')) { this.clickDel(e.target); } } pushData(name, nickname) { /* DBなどに追加する場合は、ここでfetchなどで通信 */ this.data.push({ name: name, nickname: nickname }); window.alert(`「[${name}]さん[${nickname}]にて登録しました。」`); this.input_namae.value = ''; this.input_nickname.value = ''; if (this.data.length > 2) { Object.assign(this.btn, { value: '', disabled: true, }); } } createTable() { while (this.tbody.firstChild) { this.tbody.removeChild(this.tbody.firstChild); } this.data.forEach(d => { const tr = this.tbody.insertRow(-1); tr.insertCell(0).appendChild(document.createTextNode(d.name)); tr.insertCell(1).appendChild(document.createTextNode(d.nickname)); const input_del = document.createElement('input'); Object.assign(input_del, { type: 'button', value: '削除', className: 'del', }); tr.insertCell(2).appendChild(input_del); }); } checkTsuika(name, nickname) { if (name === "" || nickname === "") { return false; } return window.confirm(`「[${name}]さん[${nickname}]を登録します。よろしいですか?」`); } clickDel(target) { /* fetchなどで削除を送信 */ const dels = [...this.tbody.querySelectorAll('.del')]; this.data = this.data.filter((_, i) => dels[i] !== target); this.createTable(); Object.assign(this.btn, { value: '追加ボタン', disabled: false, }); } } // 実行 window.addEventListener('DOMContentLoaded', () => { const table = new NameTable(); document.addEventListener('click', table, false); }); </script> </body> </html>

  • JavaScriptのonsubmitについて

    大変申し訳ありませんが、とても困っているため書かせていただきました。 「次へ」「戻る」のボタンがある画面で、下記JavaScriptをかきました。 すると、アラートメッセージが表示されるとそれ以降の処理はまったく動かず ブラウザを再読み込みしない限り、次へなどのボタンがききません。 return falseをしているせいなのだと思いますが、回避策を教えていただけないでしょうか。 処理は、 <!-- script --> <script type="text/javascript" language="JavaScript"> <!-- document.getElementById("Form").onsubmit = function() { var errkey = document.getElementsByName('item3'); var keyArray = new Array(); for( i=0; i<19; i++ ) { if (errkey[i].checked){ keyArray.push(i); } } for( i=0; i<keyArray.length; i++ ) { ansnum = keyArray[i]; check1 = document.getElementsByName('item1'); check2 = document.getElementsByName('item2'); if (flgCheck1[ansnum].checked) continue; if (flgCheck2[ansnum].checked) continue; alert('同じ');   return false; } } // --> </script>

  • チェックボックスの連動でJavaScriptの記述を短くしたい。

    【あ】、【い】という項目があり、それぞれの項目内にA、Bというチェック項目があります。 【あ】項目のAにチェックを入れると【い】のAにもチェックが入るように作りました。 以下のソースでもなんとか動くのですが、【あ】、【い】という項目が増える事とA、Bというチェック項目が増えることが判り、JavaScriptのソースを少しでも短くしたいのですが、なにか好い方法がございましたらお教え頂ければ幸です。 /************参考ソースです*****************/ <html> <head> <title>無題ドキュメント</title> <script> function check_a(){ if(document.form.a.checked==true) { document.form.a.checked=true; document.form.b.checked=false; document.form.aa.checked=true; document.form.bb.checked=false; } } function check_b(){ if(document.form.b.checked==true) { document.form.a.checked=false; document.form.b.checked=true; document.form.aa.checked=false; document.form.bb.checked=true; } } function check_aa(){ if(document.form.aa.checked==true) { document.form.a.checked=true; document.form.b.checked=false; document.form.aa.checked=true; document.form.bb.checked=false; } } function check_bb(){ if(document.form.bb.checked==true) { document.form.a.checked=false; document.form.b.checked=true; document.form.aa.checked=false; document.form.bb.checked=true; } } </script> </head> <body> <form name="form"> 項目【あ】 <input type="checkbox" name="a" onclick="check_a()"> A<BR> <input type="checkbox" name="b" onclick="check_b()"> B<BR> <br /> 項目【い】 <input type="checkbox" name="aa" onclick="check_aa()"> A<BR> <input type="checkbox" name="bb" onclick="check_bb()"> B<BR> <br /> </form> </body> </html> /*************************/ 何卒、宜しくお願い申上げます。m(_ _)m

  • javascriptでbottonクリックできない

    javascriptでWEBの自動操作をしたいのですが、button要素のクリックが一か所だけできないんです。(他は何か所か成功してます)  button要素の位置は下記ソースで間違いないはずなんですが、ID / name もないのに加えて、classNameの属性が入ってるせいなのか、成功しません。 objIE.document.getElementById('??????').click(); ??に何を入れていいのががわかりません・・ 違う方法になるのでしょうか。不躾で恐縮なのですが、お分かりの方ご教授ください。 要素内容です。---------------------------- div class= panel-footer text-right tagName = BUTTON className = btn pri_sub nodeName = BUTTON id = なし name = なし outerHTML = <button class="btn pri_sub" style="border-image: none;" type="button" data-toggle="modal" data-target="#modal_dialog" data-message="更新OK?" data-action="Update" data-title="更新確認">更新</button>

  • javascriptが効かない・・・

    上下のチェックボックス(全チェック)をした後にリンクAのチェックをはずすとリンクBがチェックされている状態になります。 そのときメニューがリンクBがリンクされている状態にしたいのですがうまくいきません。よろしくお願いいたします。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift-jis" /> <script type="text/javascript"> function pulldown(flg){ if(flg==0){ addInfoLink.style.visibility="visible"; }else{ updateInfo.style.visibility="visible"; } } function check(){ var cnt = 0; addInfoLink.style.visibility="hidden"; updateInfo.style.visibility="hidden"; for(i=0; i<document.forms[0].check1.length; i++){ if(document.forms[0].check1[i].checked == true){ cnt++; if(document.forms[0].check1[i].value==0){ alert("●"); muneHikasei.style.visibility="hidden"; linkB.style.visibility="visible"; return; }else if(document.forms[0].check1[i].value==1){ alert("▲"); muneHikasei.style.visibility="hidden"; linkA.style.visibility="visible"; return; } } } if(cnt==0){ linkB.style.visibility="hidden"; linkA.style.visibility="hidden"; addInfoLink.style.visibility="hidden"; updateInfo.style.visibility="hidden"; muneHikasei.style.visibility="visible"; } } var allFlg=false; function allCheckAction(){ if(allFlg== false && document.forms[0].allCheck1.checked==true){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=true; } check(); allFlg=true; document.forms[0].allCheck2.checked=true; return; } if(allFlg== true && document.forms[0].allCheck1.checked==false){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=false; } check(); allFlg=false; document.forms[0].allCheck2.checked=false; return; } if(allFlg== false && document.forms[0].allCheck2.checked==true){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=true; } check(); allFlg=true; document.forms[0].allCheck1.checked=true; return; } if(allFlg== true && document.forms[0].allCheck2.checked==false){ for(j=0; j<document.forms[0].check1.length; j++){ document.forms[0].check1[j].checked=false; } check(); allFlg=false; document.forms[0].allCheck1.checked=false; return; } } </script> </head> <body> <div id="muneHikasei" style="position:absolute; visibility:visible; left:9; top:28;">リンク</div> <div id="linkB" style="position:absolute; visibility:hidden; left:9; top:28;"> <a href="javaScript:void(0)" onclick="pulldown(0)">リンク</a> <div id="addInfoLink" style="position:absolute; visibility:hidden; left:4px top:16px; width:80; height:1px; background-color:#FFFFFF; layer-background-color:#FFFFFF"> リンクA<br /> <a href="">リンクB</a> </div> </div> <div id="linkA" style="position:absolute; visibility:hidden; left:9; top:28;"> <a href="javascript:void(0)" onclick="pulldown(1)">リンク</a> <div id="updateInfo" style="position:absolute; visibility:hidden; left:4px top:16px; width:80; height:1px; background-color:#FFFFFF; layer-background-color:#FFFFFF"> <a href="">リンクA</a><br /> リンクB </div> </div> <br><br><br><br><br> <form name="" method="post"> <input type="checkbox" name="allCheck1" value="1" onclick="allCheckAction()"/> <br> <input type="checkbox" name="check1" value="1" onclick="check()"/>リンクA <br> <input type="checkbox" name="check1" value="0" onclick="check()" />リンクB <br> <input type="checkbox" name="allCheck2" value="1" onclick="allCheckAction()"/> </form> </body> </html>

  • form内に2つ以上のブロック要素があるとjavascriptが動作し

    form内に2つ以上のブロック要素があるとjavascriptが動作しません。 タイトルの通りですが、form内にラジオボタンとチェックボクスをdivで1つだけ囲むと ラジオボタンで選択した箇所の2つのチェックボックスが有効になるようにはしたんですが、 デザインの為にこれをラジオボタンとチェックボックスとそれぞれ<div>で囲むとjavascriptが動かなくなります。 javascriptの書き方を変えれば行けるような気がするのですがギブアップしました。 どなたかここを有効に出来るようなスクリプトを教えていただけないでしょうか。 初歩的な質問で申し訳なく思いますが、どうかよろしくお願いいたします。 <html> <head> <title>test</title> <SCRIPT TYPE="text/javascript"> <!-- function checkfunc(){ var f=document.getElementById("chkbtn"); for(var i=0;i<f.length;i++){ if(f[i].type=="checkbox"){ f[i].disabled=true; //チェックを元に戻す f[i].checked = true; } } for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked){ var n=f[i].parentNode.firstChild; //ラジオボタンのvalue値でカテゴリを判断 var radio_now = f[i].value; while(n){ if(n.nodeName=="INPUT" && n.type=="checkbox") n.disabled=false; n=n.nextSibling; } } } } // --> </SCRIPT> <style type="text/css"> <!-- #wrap{ width: 170px; margin: 0 auto; } .radio_style{ color: #fff; width: 150px; background-color: #505050;; } .detail{ margin-left: 10px; } --> </style> </head> <body onload="checkfunc()"> <div id="wrap"> <form id="chkbtn" action="#"> <div class="radio_style"> <input type="radio" name="now" value="1" onclick="checkfunc()" onkeypress="checkfunc()" checked="selected" />宿泊<br /> </div> <div class="detail"> <input type="checkbox" id="h1box" checked="selected" />&nbsp;&nbsp;ホテル<br /> <input type="checkbox" id="h2box" checked="selected" />&nbsp;&nbsp;ビシネスホテル<br /> </div> <div class="radio_style"> <input type="radio" name="now" value="2" onclick="checkfunc()" onkeypress="checkfunc()">グルメ </div> <div class="detail"> <input type="checkbox" id="g1box" checked="selected" />&nbsp;&nbsp;うどん<br /> <input type="checkbox" id="g2box" checked="selected" />&nbsp;&nbsp;そば<br /> </div> </form> </div> </body> </html>

  • javascript クイズ

    こちらの http://okwave.jp/qa/q4105194.html 回答のNo.4の回答者様のソースコードなのですが <html> <head><style>.hid{display:none} .disp{display:block}</style></head> <body> <div id="s0">Start!!<input type="button" value="click" onClick="view();$('s0').className='hid';"></div> <div id="mn"></div> <div id="s1" class="hid"> Q1.どれを選ぶ? <input type="button" value="A" onClick="seikai()"> <input type="button" value="B" onClick="hazure()"> <input type="button" value="C" onClick="hazure()"> </div> <div id="s2" class="hid"> Q2.どれを選ぶ? <input type="button" value="A" onClick="seikai()"> <input type="button" value="B" onClick="hazure()"> <input type="button" value="C" onClick="hazure()"> </div> <div id="s3" class="hid"> Q3.どれを選ぶ? <input type="button" value="A" onClick="seikai()"> <input type="button" value="B" onClick="hazure()"> <input type="button" value="C" onClick="hazure()"> </div> <div id="s4" class="hid"> Q4.どれを選ぶ? <input type="button" value="A" onClick="seikai()"> <input type="button" value="B" onClick="hazure()"> <input type="button" value="C" onClick="hazure()"> </div> <div id="s5" class="hid"> Q5.どれを選ぶ? <input type="button" value="A" onClick="seikai()"> <input type="button" value="B" onClick="hazure()"> <input type="button" value="C" onClick="hazure()"> </div> <div id="hz" class="hid"> はずれでした! <input type="button" value="次に進む" onClick="nextq()"> </div> <div id="sk" class="hid"> 正解です! <input type="button" value="次に進む" onClick="nextq()"> </div> <script> var n=3; var q=5; var f=[]; var l=[]; var c=0; var cntc=0; window.onload=function(){ for(var i=0;i<n;i++){ do x=Math.floor(Math.random()*q)+1; while(f[x]) f[x]=true;l[i]=x; } } function view(){$('s'+l[c]).className='disp';$('mn').innerHTML=c+1+"問目";} function $(o){ return document.getElementById(o); } function hazure(){ $('hz').className='disp';} function seikai(){ $('sk').className='disp'; cntc++;} function nextq(){ $('sk').className='hid'; $('hz').className='hid'; $('s'+l[c]).className='hid'; if(++c>=n) owari(); else view(); } function owari(){ $('mn').innerHTML='正解数は、'+cntc; } </script> このままですと正解と不正解のボタンがそれぞれ一回ずつ押せてしまいます これを正解、不正解のどちらか一回しか押せないようにするにはどうすればよろしいでしょうか? よろしくお願いします。