#jquery
#jquery
Вопрос:
Если щелкнуть класс кнопки «.myaddrremove», удалите строку моей таблицы.
Как я могу добиться после нажатия на удаление tr «.myaddremove» пересчета результата в конечном контейнере для класса «.cenaa , .fzlavaa,.ssumadph,.nauhradu»??
когда я нажимаю удалить строку, не работает пересчет, если я добавляю новую строку, пересчет работает. Как я могу добиться пересчета при удалении tr?
$(document).on('click', '.myaddremove', function(){
$(this).closest('tr').remove();
});
// CALKULATE TR
calkulatemy();
function calkulatemy() {
$(document).change(function () {
$('.mnozstvo, .cenaj , .zlava , .cenakpl , .dphpercentaa, .sumadpha ,.polozkaspolua').change(function () {
let parents = $(this).closest( 'tr')
parents.find('.cenakpl').val(parseFloat(parents.find('.mnozstvo').val()) * parseFloat(parents.find('.cenaj').val()))
parents.find('.cenakpl').val(parseFloat(parents.find('.cenakpl').val()) - parseFloat(parents.find('.zlava').val()))
parents.find('.sumadpha').val(parseFloat(parents.find('.cenakpl').val()) / 100 * parseFloat(parents.find('.dphpercentaa').val()))
parents.find('.polozkaspolua').val(parseFloat(parents.find('.cenakpl').val()) parseFloat(parents.find('.sumadpha').val()))
let zlava = 0;
let cena = 0;
let dph = 0;
$('.zlava').each(function () {
if (!isNaN(this.value) amp;amp; this.value.length !== 0) {
if ($(this).hasClass('zlava')) {
zlava = parseFloat(this.value);
}
}
});
$('.fzlavaa').val(zlava.toFixed(2));
$('.cenakpl').each(function () {
if (!isNaN(this.value) amp;amp; this.value.length !== 0) {
if ($(this).hasClass('cenakpl')) {
cena = parseFloat(this.value);
}
}
});
$('.cenaa').val(cena.toFixed(2));
$('.sumadpha').each(function () {
if (!isNaN(this.value) amp;amp; this.value.length !== 0) {
if ($(this).hasClass('sumadpha')) {
dph = parseFloat(this.value);
}
}
});
$('.ssumadph').val(dph.toFixed(2));
$('.cenaa , .fzlavaa , .ssumadph , .nauhradu').each(function () {
let parents = $(this).closest('tr')
parents.find('.nauhradu').val(parseFloat(parents.find('.cenaa').val()) parseFloat(parents.find('.ssumadph').val()))
});
});
});
}
Комментарии:
1. Вы можете вызвать
calkulatemy();
функцию внутри$(document).on('click', '.myaddremove'..
, но почему у вас есть.change
внутренняя функция?2. если calkulatemy() вызовет функцию внутри $(document).on(‘click’,’.myaddremove’), никакого эффекта, никаких изменений сделано не будет