質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

3回答

3320閲覧

if文が動作しない➕ setTimeoutについて。

退会済みユーザー

退会済みユーザー

総合スコア0

CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2016/05/31 06:55

編集2016/06/11 00:41

現在gif画像を使って、じゃんけんゲームもどきを作っているのですが、相手の体力がなくなった時に動作するようにしたif文が動作しません。
また、setTimeoutでタイミングをズラしてダメージが反映されたり、
gif画像をデフォルトの画像に戻すということをしているのですが、この場合、
選択肢を連打されたり、gifが終了する前に次の選択肢を選ばれたら挙動がおかしくなってしまいます。
そこで、選択肢がクリックされたら、選択肢のclass(MySelect)をattrで変更し、デフォルトの画像に戻るsetTimeout処理でそのクラスを元に戻せば、終わるまで選択肢をクリックしても、大丈夫になると考えたのですが、うまくいきませんでした。(普通に連打できてしまう。)
あとは。clearTimeoutを使えば良いのかなと考えていますが、うまく思いつきません。
アドバイスをいただけると嬉しいです。
初心者なもので、拙いコードですがご了承ください。
動作していないif文は一番最後の2つです。

コード修正中です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2016/06/01 02:03

CoffeeScript をコンパイルした JavaScript コードの追記をお願いします。trial2.js なのでしょうか。
退会済みユーザー

退会済みユーザー

2016/06/01 04:08

追記いたしました。
kei344

2016/06/11 05:28

コードがありませんが、追記される予定なのでしょうか。また、追記されない場合は一度「解決済」にされることをお勧めします。
guest

回答3

0

こんにちは。

数値と比較しているようなので、
parseIntまたはparseFloatで囲って、
数値に変換してみるのはどうでしょうか。

例:

js

1parseFloat($('#EnemyGage').val())

投稿2016/05/31 07:49

momotaro888

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/05/31 11:50

挙動は変わらなかったですね....
guest

0

この状態では最後の2つのif文は、このスクリプトが初期化された際に一度だけ実行され、
じゃんけんするたびに判定する挙動にはなりません。
以下のように、最後の2つのifの処理を関数化するなどし、
win、lose関数の中で呼び出してみてはいかがでしょう。

win = function(damage, time) { var attack; return attack = setTimeout(function() { var _eneGage; _eneGage = $('#EnemyGage').val() - damage; $('#EnemyGage').val(_eneGage); check(); // ←ここで最終勝敗判定を実行 }, time); }; lose = function(damage, time) { var attacked; return attacked = setTimeout(function() { var _myGage; _myGage = $('#MyGage').val() - damage; $('#MyGage').val(_myGage); check(); // ←ここで最終勝敗判定を実行 }, time); }; // 最終勝敗判定 check = function() { if (parseFloat($('#EnemyGage').val()) <= 0) { console.log('kati'); $('.remove').empty(); $('#resultImg').html("<img src=\"img/youwin.jpg\"/>"); $('#resultImg').fadeIn(10000); } if ($('#MyGage').val() <= 0) { console.log('make'); $('.remove').empty(); $('#resultImg').html("<img src=\"img/gameover.jpg\"/>"); return $('#resultImg').fadeIn(10000); } };

投稿2016/06/02 00:29

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

再現性の問題

jsfiddleにそのままUPしてみましたが、画像がないので動きがわかりにくいですね。

クリック連打による不具合

選択肢を連打されたり、gifが終了する前に次の選択肢を選ばれたら挙動がおかしくなってしまいます。

症状を伺う限りでは <input type="image"> をクリッカブルにして下記のようにすれば修正できそうです。

  1. click 直後にボタンを非活性化する
  2. click ハンドラ処理終了後にボタンを活性化する

意図的に内容が抹消された質問

編集機能を使用して質問内容を抹消する行為は禁止されているのでご注意ください。

解決後に編集機能を用いて、質問内容を改変し、関係のない内容にしたり、内容を削除する行為は禁止しています。
皆さんにしていただいた質問・回答は、後に他の誰かが困ったときに助けになる情報資産になると考えるからです。
https://teratail.com/help/avoid-asking

Re: bero さん

投稿2016/06/01 16:01

編集2016/06/01 22:11
think49

総合スコア18164

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/02 00:19

存じませんでした。 以後気をつけます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問