Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2018, 22:05
Интересующийся
Отправить личное сообщение для Subteras Посмотреть профиль Найти все сообщения от Subteras
 
Регистрация: 05.04.2018
Сообщений: 13

Поочередность выполнения действий.
Всем привет.
Вот сделал такой вывод, но возникла проблема. Как сделать отработку 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);
			});	
			
		});	
	});
};
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2018, 00:39
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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);
			})();
			
		});	
	});
};

Последний раз редактировалось j0hnik, 09.04.2018 в 01:03.
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2018, 00:58
Интересующийся
Отправить личное сообщение для Subteras Посмотреть профиль Найти все сообщения от Subteras
 
Регистрация: 05.04.2018
Сообщений: 13

Алгоритм отрабатывает правильно! Но перестал находить значение
quntity = $(this).closest('div.b_list').find('.b_quntity').val();
пишет "undefined".
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2018, 01:02
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Subteras,
Исправил, проверьте
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2018, 01:06
Интересующийся
Отправить личное сообщение для Subteras Посмотреть профиль Найти все сообщения от Subteras
 
Регистрация: 05.04.2018
Сообщений: 13

j0hnik,
Это просто отлично!!! Все работает, а я уж было подумал, что зашел в тупик!
Ответить с цитированием
  #6 (permalink)  
Старый 09.04.2018, 10:42
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Не обязательно оборачивать код в
$(document).ready(function(){});
Т.к. вы его запускаете после полной загрузки браузером страницы (load event), событие "DOMContentLoaded" в этот момент уже наступит.
Ответить с цитированием
  #7 (permalink)  
Старый 10.04.2018, 01:28
Интересующийся
Отправить личное сообщение для Subteras Посмотреть профиль Найти все сообщения от Subteras
 
Регистрация: 05.04.2018
Сообщений: 13

Сообщение от Nexus Посмотреть сообщение
Не обязательно оборачивать код в
$(document).ready(function(){});
Т.к. вы его запускаете после полной загрузки браузером страницы (load event), событие "DOMContentLoaded" в этот момент уже наступит.
Я window.onload убрал из кода. Он мне там не нужен.

Вопрос еще возник. Как взаимодействовать с 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);
		});

Но он работает только с элементами которые есть на странице, а я динамически добавляю еще, и код перестает работать вообще, даже на предыдущих(на которых работал до этого.
Ответить с цитированием
  #8 (permalink)  
Старый 10.04.2018, 01:53
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

возможно так

$(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);
});
Ответить с цитированием
  #9 (permalink)  
Старый 10.04.2018, 02:00
Интересующийся
Отправить личное сообщение для Subteras Посмотреть профиль Найти все сообщения от Subteras
 
Регистрация: 05.04.2018
Сообщений: 13

Да, то что нужно! Спасибо!!! Разберу сегодня этот пример))).
А не подскажите еще как мне newPrice записать в такой же динамически создаваемый input ".b_price". Что бы потом отравить эти данные в mysql. Смысл такой, что меняя количество должна меняться сумма в input. Со статическими у меня проблем нет, а в jQuery я только-только новичок.

Последний раз редактировалось Subteras, 10.04.2018 в 02:20.
Ответить с цитированием
  #10 (permalink)  
Старый 10.04.2018, 07:43
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от Subteras
А не подскажите еще как мне newPrice записать в такой же динамически создаваемый input ".b_price".
У вас в строке 7 идет чтение значения из этого инпута, записать значение можно так:
jquery.find('.b_price').val(newPrice);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с jasmine подсчет времени выполнения теста voice Библиотеки/Тулкиты/Фреймворки 2 26.03.2013 17:47
Время выполнения z700i Общие вопросы Javascript 7 02.11.2011 16:10
Взаимодействие со скриптом на протяжении его выполнения Malgin AJAX и COMET 6 23.08.2010 22:39
Google Chrome перерисовка страницы во время выполнения скрипта Dekart Javascript под браузер 0 08.06.2010 08:35
Скорость выполнения кода mycoding Общие вопросы Javascript 6 23.04.2010 13:28