function init(){ // Ищем все поля ввода и назначаем обработчик
NodeList.prototype.forEach = Array.prototype.forEach;
document.querySelectorAll('.wrapper input[type="text"]').forEach(function(e){
e.addEventListener('keyup', reCount, false);
});
}
function reCount(){
var parent = this.parentNode.parentNode;
var count = this.value;
if(/^(?:\D|\s)*$/.test(count)) // Если пусто или не цифра, то выходим
return;
var price = parent.querySelector('td:nth-child(2)').dataset.price;
var disc = parent.querySelector('td:nth-child(4)').dataset.disc;
var total = parent.querySelector('td:nth-child(5) strong');
total.innerHTML = price * count - (price * count * disc); // Вычисляем итоговую цену за этот товар
totalReCount(); // Запускаем глобальный пересчёт всех "Итого"
}
function totalReCount(){
var totals = document.querySelectorAll('.wrapper tr:not([class="total"]) td:next- strong');
var cost = 0;
totals.forEach(function(item){
cost += +item.innerHTML; // Пробегаемся по каждому "Итого" и прибавляем к итоговой цене
});
document.querySelector('.wrapper .total strong').innerHTML = cost; // Выводим общий чек
}
document.addEventListener('DOMContentLoaded', init, false);
Помогите завернуть это в $("body").on
, т.к. скрипт присваивает обработчик после загрузки DOM, а у меня есть данные, которые динамически подгружаются на страницу, и они этим скриптом уже не обрабатываются. =(
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход