- ベストアンサー
AからBへ変わった時だけ発動する方法
ifを使ってAからBへ変わった時だけ発動する為にはどうしたらよいでしょうか? if(i == B) のようにBになった時発動するのではなく 状態AからBに変わった時だけ発動するようにするにはどうしたらよいでしょうか? 少し解りづらいですがBからBの時は発動しないという事です。 あまりプログラミングに詳しくないので不明な点があれば指摘頂ければ補足します。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
<script type="text/javascript"><!-- function MyObject(status){ //状態を持つオブジェクト this.status = status;//初期値 this.setStatus = function(s){ if(this.status != s){//前と違う状態になったら this.status = s; if(this.onchange)//登録されている関数を呼び出す this.onchange(this.status); } }; } function change(s){ //状態が変更されたときに呼び出される処理 alert(s + "に状態が変更されました!"); } var myObj = new MyObject("A"); myObj.onchange = change; //関数の登録 myObj.setStatus("A"); myObj.setStatus("B");//onchange に登録された処理が呼び出される //--> </script>
その他の回答 (3)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>Untitled</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> function chRad(ths){ var docf=document.forms['f1'].elements; if(docf['hid'].value=='A'&&ths.value=='B')alert('A-->B'); else docf['hid'].value=ths.value; } </script> </head> <body> <form name="f1"> <input type="radio" name="rad" value="A" onclick="chRad(this)">A<br> <input type="radio" name="rad" value="B" onclick="chRad(this)">B<br> <input type="radio" name="rad" value="C" onclick="chRad(this)">C<br> <input type="hidden" name="hid" value=""> </form> </body> </html>
- yambejp
- ベストアンサー率51% (3827/7415)
変数Xに"B"をセットするときに元データの値を みて"A"だったときにはフラグfにtrueを セットするのがよろしいのでは?
- osamuy
- ベストアンサー率42% (1231/2878)
現在の状態を記憶しておいて、それがAで無ければ条件が成立したとするとか。こんな感じ: if ( current_status == A && i == B ){ current_status = i; /* 最新の状態を記憶 */ }