- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript クリックで複数の関数の実行)
JavaScriptでクリック時に複数の関数を実行する方法とは?
このQ&Aのポイント
- JavaScriptのボタンをクリックした際に複数の関数を連続して実行する方法について質問です。
- 具体的には、vib1()とvib2()を連続して実行したいのですが、vib1()が実行されず、vib2()のみが実行されてしまいます。
- どのようにすればvib1()とvib2()を連続して実行することができるのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
navigator.vibrate() は非同期なAPIなので、vib1()が実行され、バイブレーションが始まると同時にvib2()が実行され、vib1()で開始されたバイブレーションが取り消されているという感じでしょうか? onclick = "vib1(); setTimeout(vib2, 700);" って感じで、vib2()を遅延させれば良いかも(試してないけど)
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
回答No.1
vib1()、vib2()の両方が実行されていますよ。 何を持ってvib1()が実行されていないと判断されたのでしょうか?
質問者
補足
ご指摘の通りアラートなどを各関数に挟んだところちゃんと関数は実行時実行されておりました。ありがとうございました。 ところが1つ目のvib1()のバイブレーションが完了する前にvib2()のバイブレーションが動作してしまい、まるでvib1()のバイブレーションが動作してないようになってしまいます。 vib1()のバイブレーションがちゃんと終了してからvib2()が作動するようにするにはどうしたらいいのでしょうか。
お礼
そうです!これです! 試したところちゃんと動作しました! 質問の意図を組んで的確なアドバイスをいただき本当にありがとうございました。本当に助かりました!