Прерывание цикла на нужной итерации
Есть такая фигня:
$('#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;
Но цикл полностью прерывается, скидка не срабатывает для всех товаров, хотя должна бы только для одного. |
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();
}
});
|
Благодарю за помощь!
|
| Часовой пояс GMT +3, время: 01:49. |