• ベストアンサー

AからBへ変わった時だけ発動する方法

ifを使ってAからBへ変わった時だけ発動する為にはどうしたらよいでしょうか? if(i == B) のようにBになった時発動するのではなく 状態AからBに変わった時だけ発動するようにするにはどうしたらよいでしょうか? 少し解りづらいですがBからBの時は発動しないという事です。 あまりプログラミングに詳しくないので不明な点があれば指摘頂ければ補足します。 よろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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)

noname#22259
noname#22259
回答No.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)
回答No.2

変数Xに"B"をセットするときに元データの値を みて"A"だったときにはフラグfにtrueを セットするのがよろしいのでは?

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

現在の状態を記憶しておいて、それがAで無ければ条件が成立したとするとか。こんな感じ: if ( current_status == A && i == B ){ current_status = i; /* 最新の状態を記憶 */ }

関連するQ&A