インプットに個数を入力すると、個数×100円/個の金額を<span>タグ内に表示するjQueryを書いています。
html
1<input type="number" id="ammount" min="0" style="text-align:right" val=1>個<br> 2<span id="price"></span>円
現状記述しているコードは下記のコードです。
javascript
1#個数×100円/個の金額を計算し、表示する関数(①) 2function price(){ 3 ammount = $("input#ammount").val(); 4 price = ammount * 100; 5 $('span#price').text(price); 6}; 7 8#個数変更時にprice関数を起動するためのコード(②) 9var timer = false; 10$("input#ammount").change(function(){ 11 if (timer !== false){ 12 clearTimeout(timer); 13 } 14 timer = setTimeout(function(){ 15 alert("change"); #setTimeoutがうまく動いているかを試すためのテスト 16 price(); #ここでprice関数を実行したい 17 }, 1000); 18}); 19 20#画面表示時にprice関数を起動するためのコード(③) 21$(document).ready(function(){ 22 squareMeter(); 23}); 24
①は、金額を計算し<span>タグに表示するための関数です。ここは問題無いと思います。
②は、inputで個数が変更された時に、price関数を起動するための記述です。
個数は、<input type="number">に入力してもらうため、1個ずつ増やしていくたびにいちいちprice関数が起動することなく、変更し終えて1秒後にようやくprice関数が起動するための工夫をしています。
③は、inputのデフォルト値が1なので、表示時に、1×100を計算して表示するための記述です。
問題は、③をコメントアウトすれば②も問題なく動くのですが、③があると②が動きません。
試しに、③がある状態でinputの数値を変えると、alert("change")までは動きます。
そのため、③があると、price関数を呼び出すことができないのだと思います。
なお、②があっても、③は問題なく起動します。
原因が掴めず、困っています。
お分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/06/11 04:59