Прерывание цикла на нужной итерации
Есть такая фигня:
$('#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, время: 23:38. |