• ベストアンサー

ボタンのクリックで

すみません。 また JavaScript について質問させていただきます。 ボタンをクリックして処理を実行することができますが、例えば、1回目にクリックしたときには関数 test1() を実行、2回目にクリックしたときには関数 test2() を実行・・・という具合に処理を変えることはできますか? 可能であれば、その方法を教えてください。 よろしくお願します。

  • ko-go
  • お礼率42% (6/14)

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

#2です。前回のはtest1を呼びだすボタンが1個の場合。 複数の場所から呼ばれる可能性があってどこから呼ばれても2回目はtest2にしたい場合は次のように。 function test1() { // test1の処理 test1 = test2;//最後にtest1をtest2に書き換え。 } # グローバル変数でflgを設けるなら関数の配列も要しておくとちょっとスマートかも。 var test = new Array(test1,test2); var flg = 0; function test1() { flg = 1; } function test2() { } 呼び出し例 onclick="test[flg]()"

ko-go
質問者

お礼

ご回答ありがとうございました。 参考になりました。

その他の回答 (3)

回答No.3

グローバルな変数を使って1回目、2回目を判断する方法が 一般的でしょうね。 #以下、階層は全角空白で行っています。コピー注意 ボタンを押した時の処理をtest()とします。 <SCRIPT LANGUAGE="JavaScript"> <!-- var flg = 0; function test() {  if( flg == 0 ){  test1();   flg = 1;  } else if( flg == 1 ){   test2();   flg = 2;  } } function test1(){ // 略 } function test2(){ // 略 } //--> </SCRIPT> 2回目以降何もしないなら、このままでいいです。

ko-go
質問者

お礼

ご回答ありがとうございました。 参考になりました。

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

test1を実行した後にonclickを書き換えるとか。 ~ onclick="test1();this.onclick=test2"

ko-go
質問者

お礼

ご回答ありがとうございました。 参考になりました。

回答No.1

まずtest0()を呼んで、その中でフラグを判断してから 1回目ならtest1()を実行 2回目ならtest2()を実行 これでいかがかしら?

ko-go
質問者

お礼

ご回答ありがとうございました。 参考になりました。

関連するQ&A

  • PHPを使って作成したボタンをクリックすると他のPHPの関数を呼び出す

    PHPを使って作成したボタンをクリックすると他のPHPの関数を呼び出す処理を 作りたいのですが、 ボタンのクリックイベントを表現する方法は JavaScriptで記述する方法がいいのでしょうか? その場合、JavaScriptからPHP関数を呼び出すには どのように処理をすればいいのかいくら検索しても 出てこなかったため質問をしてみました。 いい処理方法があったら教えてください。

  • WebBrowser 内のボタンをクリックし、引数を渡したい。

    WebBrowser 内のボタンをクリックし、引数を渡したい。 WebBrowser コントロールを使用していて Windows アプリからページ内のボタンをクリックする方法について質問です。 以下のボタンが html で定義されているとして、 <input type = "button" id = "button1" onclick="javascript:foo();" /> HtmlElement element = null; element = webBrowser1.Document.GetElementById("button1"); element.InvokeMember("click"); こうすると、javascript の foo() が実行されます。 本題はここからなんですが、 この関数fooに引数を渡したいのです! 例えばfooの定義を var foo=function(arg) { alert(arg); } として、アプリ側から、 element.InvokeMember("click","this is test"); のようにすれば動くかと思ったのですが、だめでした。 方法をご存知のかた、ご教授願います!

    • ベストアンサー
    • HTML
  • VB6 コマンドボタン クリックイベントについて

    教えてください。 フォームに貼り付けているコマンドボタンのクリックイベントについてですが、クリックイベント内の処理で処理に時間がかかります。コマンドボタンを1度クリックすると、この処理を実行します。この状態であれば、問題ないのです。ところが、コマンドボタンを押して、処理している間にコマンドボタンを連打すると、ずーっと同じ処理を繰り返してしまいます。 クリックイベントが待ち行列にたまっているように思えるのですが、 これを回避する方法などがあれば教えてください。 ・待ち行列をクリアするとか ・待ち行列にイベントがたまっていても、1度しか実行しない。 などなど、具体的な方法とサンプルコードなどを教えていただけないでしょうか。お願いします。 環境VB6 WIN2K です。

  • JavaScriptのクリックイベントを呼び出す

    JavaScriptの質問です。 ある要素がクリックされた時に呼び出したい関数を設定する方法は多数ありますが、 「ある要素がクリックされたことにする」ような組み込み関数はあるのでしょうか。 A要素(リンク)でそれを実行すれば、href属性に指定してあるURLに移動するし、 onclickで何かJavaScriptが設定されている要素であれば、それが実行されるといったものです。 環境はIE8以降だけで構いません。 よろしくお願いします。

  • shiftキーを押しながらコマンドボタンをクリックについて。

    shiftキーを押しながらコマンドボタンをクリックについて。 普通にコマンドボタン(<input type="button")をクリックした場合と、 shiftキーを押しながらコマンドボタンをクリックした場合の処理を分けたいのですが、 そういうことは可能なのでしょうか。 キーインの判断の方法が分かりません。 ご存知の方がおられましたらご教授願えませんでしょうか。 よろしくお願いします。 javascriptというより、htmlのカテゴリーかもしれませんが・・・ 。  

  • 同名ボタンのクリック時要素番号の取得方法

    <html> <head> <script Language="JavaScript"><!-- function doSentaku(btn) { //クリックされたボタンの要素番号が知りたい alert(btn.name); } // --></script> </head> <body> <form name="mainWin"> <input type="button" value="配列ボタンテスト1" name="testbtn" onClick="javaScript:doSentaku(this)"><br> <input type="button" value="配列ボタンテスト2" name="testbtn" onClick="javaScript:doSentaku(this)"><br> <input type="button" value="配列ボタンテスト3" name="testbtn" onClick="javaScript:doSentaku(this)"><br> </form> </body> </html> ----------------------------------------------------------------------------------------- このようなFromがあった場合、nameが同じである時、javaScriptではボタンのElemetは配列扱いになるかと思うのですが、doSentaku関数内ではnameは取得できるとして、クリックされた要素番号は取得できるのでしょうか? なお、訳ありでdoSentaku関数のボタンonClickの関数引数はすべて同じ定義しかできないものとします。 つまり個々ボタンを識別する値は指定できないと言うことです。 まことに申し訳ありませんが、どうかアドバイスのほどよろしくお願いします。

  • ボタンクリックで

    javascript beginnerです。 「初期状態はOPEN」 「クリックでCLOSE」 「クリックでOPEN」     : となるようなボタンを作成したいのですが 検索してもどうも見つからずわかりません。 教えてください。

  • コマンドボタンがクリックしても動きません

    Excel2007で簡単なマクロを組んで、コマンドボタンで実行していたのですが、コマンドボタンをクリックしても反応しなくなりました。マクロを表示して実行すれば動くのですが、復旧するための対処方法ないでしょうか?

  • Rails3でのクリックされたボタンの判定について

    現在Rails3でWEBアプリの開発をしているのですが 実現方法が不明な事が有るので質問させて頂きました。 実行環境は   OS:Windows7   Railsバージョン:3.0.9   APサーバー:WEBrick です。 実現方法が不明なのは、一つのフォームに複数のサブミットボタンを配置し コントローラーでどのボタンが押されたのか判定する方法です。 ビューにおいてフォーム内に  <%= submit_tag 'OK', {:disable_with => "Sending…"} %>  <%= submit_tag 'CANCEL', {:disable_with => "Sending…"} %> と言う様にサブミットボタンを配置し コントローラーでどちらのボタンが押されたのかを判定する方法なのですが 検索して調べてみると  if 'OK' == params[:commit] then   OKボタンが押された際の処理  else   CANCELボタンが押された際の処理  end と言う風に出来ると言う情報を見つけたのですが、実際にやってみると 上記の様な値はparamsから取得出来ないので、正しく動作しません。 paramsで取得した値の中身を見ても、それらしい値も無く 何を判断すればどのボタンが押されたのかを判断出来るのかが判らず 非常に困っております。 サブミットボタンにjavascriptのコードを埋め込み 送信前にHIDDEN項目にクリックされたボタンを表す値を埋め込むと言った方法で 回避する事も可能かとは思いますが、標準的なやり方とも思えず また、良く行われる処理だと思いますので、他に方法が有る様に思えます。 どなたかご存知の方が居れば御回答お願いします。

    • ベストアンサー
    • Ruby
  • ボタンのクリックについて

    ボタンのクリックについて質問です。 CreateWindow()を使ってボタンを作成して表示させているのですが、 ボタンに画像などを表示させている時にクリックをすると、 一瞬、画像などが表示されていない状態になります。 裏画面処理でやってみたりしたのですが出来ませんでした。 やりたい事としては、 http://hp.vector.co.jp/authors/VA018351/ のようにボタンをクリックしても、ちらつきがない様にしたいです。 開発環境 XP Visual Studio 2005 C、C++

専門家に質問してみよう