Поочередность выполнения действий.
Всем привет.
Вот сделал такой вывод, но возникла проблема. Как сделать отработку Ajax запроса после каждой отработки вывода массива each ( id1 -> quntity1 -> Ajax, id2 -> quntity2 -> Ajax, .... и т.д.)?
window.onload = function(){
$(document).ready(function(){
$('.clear_basket').on('click', function(){
var id = "";
var quntity = "";
$('.num_id').each(function(){
id = $(this).val();
quntity = $(this).closest('div.b_list').find('.b_quntity').val();
$.ajax({
url: "http://localhost/MyShop/php/product-basket-clear.php",
type:"POST",
data:{id:id, quntity:quntity},
success: function(result){
console.log(result);
}
});
console.log(id);
console.log(quntity);
});
});
});
};
|
window.onload = function(){
$(document).ready(function(){
$('.clear_basket').on('click', function(){
var id = "";
var quntity = "";
var i = 0;
var num = $('.num_id');
(function func(){
var id = num.eq(i).val();
quntity = num.eq(i).closest('div.b_list').find('.b_quntity').val();
$.ajax({
url: "http://localhost/MyShop/php/product-basket-clear.php",
type:"POST",
data:{id:id, quntity:quntity},
success: function(result){
console.log(result);
if(num.length>++i) func();
}
});
console.log(id);
console.log(quntity);
})();
});
});
};
|
Алгоритм отрабатывает правильно! Но перестал находить значение
quntity = $(this).closest('div.b_list').find('.b_quntity').val();
пишет "undefined". |
Subteras,
Исправил, проверьте |
j0hnik,
Это просто отлично!!! Все работает, а я уж было подумал, что зашел в тупик! |
Не обязательно оборачивать код в
$(document).ready(function(){});
Т.к. вы его запускаете после полной загрузки браузером страницы (load event), событие "DOMContentLoaded" в этот момент уже наступит. |
Цитата:
Вопрос еще возник. Как взаимодействовать с input-ом , созданным динамически? Вот код
$('input').on('keyup', function(){
var id = $(this).closest('div.b_list').find('.b_id').val();
var quntity = $(this).closest('div.b_list').find('.b_quntity').val();
var price = $(this).closest('div.b_list').find('.b_price').val();
var new_price = quntity * price;
console.log(new_price);
console.log(id);
});
Но он работает только с элементами которые есть на странице, а я динамически добавляю еще, и код перестает работать вообще, даже на предыдущих(на которых работал до этого. |
возможно так
$(document).on("keyup", function(event) {
var jquery = $(event.target).closest("div.b_list");
if(jquery.length === 0) return;
var id = jquery.find('.b_id') .val();
var quantity = jquery.find('.b_quntity').val();
var price = jquery.find('.b_price') .val();
var newPrice = quantity * price;
console.log(newPrice);
console.log(id);
});
|
Да, то что нужно! Спасибо!!! Разберу сегодня этот пример))).
А не подскажите еще как мне newPrice записать в такой же динамически создаваемый input ".b_price". Что бы потом отравить эти данные в mysql. Смысл такой, что меняя количество должна меняться сумма в input. Со статическими у меня проблем нет, а в jQuery я только-только новичок. |
Цитата:
jquery.find('.b_price').val(newPrice);
|
| Часовой пояс GMT +3, время: 12:56. |