• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript setTimeout)

JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った動作がうまくいかない

このQ&Aのポイント
  • JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った「めくったカードが違う場合、少し時間を経過させてから元に戻す」という動作がうまくいかない。
  • JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った動作がうまくいかない。カードをめくった後、選択したカードが違う場合、一定の時間を経過させてからカードを元に戻す動作を作りたいが、どこか間違っているようだ。
  • JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った動作がうまくいかない。カードをめくった後、選択したカードが一致しない場合、少し時間を経過させてからカードを元に戻すような動作を作りたいが、どこか間違っているようだ。

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

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.1

bunki がグローバルスコープに存在しないため、第一引数を eval できずに失敗しています 誤: setTimeout("bunki()", 500); 正: setTimeout(bunki, 500); このあたりのスコープに関する説明は少々敷居の高いので省略しますが、 そもそも(誤)の記法はすでに非奨励なので、 この機会に(正)の記法を覚えていただければ幸いです。 参考) https://developer.mozilla.org/ja/docs/Web/API/window.setTimeout 余談ではありますが... 二枚目をめくった後に0.5秒以内に次のカードをめくるとバグる問題が残っています。ご注意ください

komado45oji4768
質問者

お礼

すいません、解決しました。 function bunki(){ document.getElementById(click_first).src="none.jpg"; document.getElementById(click_second).src="none.jpg"; } を setTimeout(bunki,500); の前に持ってきたらちゃんと動作しました。 ありがとうございました。

komado45oji4768
質問者

補足

お返事ありがとうございます 非推奨だったんですね。 以後使わないようにします。 修正後、fireBugで確認したのですが、 ReferenceError: bunki is not defined setTimeout(bunki,500); と表示され、機能してくれません。 まだどこか間違っているのでしょうか。 よろしければ、もう一度お答えいただけると幸いです。

関連するQ&A

専門家に質問してみよう