У меня есть простая функция .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 в его собственную функцию, он сработал более последовательно, но getJSON, который в .change отлично работает, пропускается.
Я сталкиваюсь с конфликтом первого запроса 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 РЕДАКТИРОВАТЬ: я думаю, что .each срабатывает до завершения getJson. Как я могу убедиться, что запрос json выполнен до того, как я не сделаю jQuery
linequantity
? Вы можете включить свой HTML? - person Manse   schedule 31.05.2012action
дляgetSubtotal
, чтобы вам не приходилось делать это в цикле. - person Explosion Pills   schedule 31.05.2012jQueryFunctions.php?*action*=getSubtotal...
) - person Explosion Pills   schedule 31.05.2012