Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2014, 04:37
Новичок на форуме
Отправить личное сообщение для bikerlex Посмотреть профиль Найти все сообщения от bikerlex
 
Регистрация: 10.05.2014
Сообщений: 4

Прерывание цикла на нужной итерации
Есть такая фигня:

$('#pickup').change(function() {
		if ($(this).prop('checked')) {
			$('.trade-block').each(function() {
				price = parseInt($(this).attr('data-price'))*0.9;
				id = $(this).attr('data-id');
				$(this).find('.price').text(Math.floor(price));
				$('li[data-id='+id+']').attr('data-price',Math.floor(price));
				val = $('li[data-id='+id+'] input').val();
				recountCartValues($('li[data-id='+id+'] input'),val);
				$('#user_addr').parent().hide();
			});
		} else {
			$('.trade-block').each(function() {
				price = $(this).attr('data-price');
				id = $(this).attr('data-id');
				$(this).find('.price').text(price);
				$('li[data-id='+id+']').attr('data-price',price);
				val = $('li[data-id='+id+'] input').val();
				recountCartValues($('li[data-id='+id+'] input'),val);
				$('#user_addr').parent().show();
			});
		}
	});


Ну т.е. есть список товаров с их ценами и если ставим галку цены меняются. В блоке trade-block завел новый атрибут (или как он правильно называется) discounts (Без скидки). Дак вот, если он = 1, то цикл на этой итерации должен прерываться до умножения на 0.9 и препрыгивать на следующую итерацию.
Запилил перед этим местом такую штуку:
if($(this).prop('discounts').text() == 1) return true;

Но цикл полностью прерывается, скидка не срабатывает для всех товаров, хотя должна бы только для одного.
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2014, 08:44
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

1. Лучше назвать атрибут "data-discounts" и обращаться к нему через $(this).data('discounts');

2.
$('.trade-block').each(function () {
    if (!$(this).data('discounts')) {
        price = parseInt($(this).attr('data-price')) * 0.9;
        id = $(this).attr('data-id');
        $(this).find('.price').text(Math.floor(price));
        $('li[data-id=' + id + ']').attr('data-price', Math.floor(price));
        val = $('li[data-id=' + id + '] input').val();
        recountCartValues($('li[data-id=' + id + '] input'), val);
        $('#user_addr').parent().hide();
    }
});
Ответить с цитированием
  #3 (permalink)  
Старый 30.05.2014, 10:06
Новичок на форуме
Отправить личное сообщение для bikerlex Посмотреть профиль Найти все сообщения от bikerlex
 
Регистрация: 10.05.2014
Сообщений: 4

Благодарю за помощь!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывание цикла Zim_one Элементы интерфейса 8 12.02.2013 10:10
Определение последней итерации цикла. Allan Stark Серверные языки и технологии 10 28.09.2012 14:33
прерывание цикла 9112 Общие вопросы Javascript 5 07.09.2012 15:57
как отобразить в окне значения счетчика во время выполнения цикла FOR Алекс97 Общие вопросы Javascript 5 06.09.2008 10:36