私はデータベースに行き、いくつかの値を取得していくつかの値を設定する単純な.change関数を持っています。
$('.linequantity').change(function() {
...
$.getJSON(url, function(data) {
$('#TT-' + lineItem).text(parseFloat(data['price']) * quantity);
});
});
次に、変更する線の数量のいずれかで、小計を更新したいと思います。(はい、カタログタイプ/ショッピングカートスタイルのアプリです)。私の考えは、.eachを使用しましょう
$('.linequantity').each(function(){
...
var url = "jQueryFunctions.php?action=getPrice&quantity=" + quantity + "&customer=" + customerID + "&item=" + lineItem;
$.getJSON(url, function(data) {
subtotal = subtotal + (parseFloat(data['price']) * quantity);
});
});
$('#subtotal').text(subtotal);
ただし、これを行うと、それぞれが発火したとしても、小計は0になります。
.eachを関数に入れるのに疲れました。.eachを独自の関数に移動すると、より一貫して起動しましたが、.changeで正常に機能するgetJSONはスキップされます。
最初のjsonリクエストの競合が発生した場合、別のリクエストをリクエストする前に完全ではありませんか?
私は方法論の変更を受け入れていますが、上記のことは正しい考え/開始を持っています。
何か案は?
EDITS
数量フィールド
<input type="text" class="linequantity" id="SQ-<?php echo $value['itemNumber']; ?>" name="Quantity" placeholder="#"/>
総スパン
<span id="subtotal" class="currencyField">$0.00</span>
11:44編集:getJsonが完了する前に.eachがヒットしていると思います。jQueryを実行しない前にjsonリクエストが完了したことを確認するにはどうすればよいですか?