Estou tentando entender o funcionamento do Jquery observando o código. Vi que tem uma chamada do AtualizaDados em dois lugares, um dentro da função de remover Item e outro na função após inicializado.
Entendo que ao clicar no botão para remover o item, o script vai executar a função aposInicializado, que vai identficar que foi clicado um objeto class="remover-item". Dai ele vai executar o método, correto? Dentro do método removeItem, vai fazer as ações necessárias e na ultima linha vai chamar o método atualizaDados. Mas depois o método aposInicializado, que chamou o removeItem, tem mais uma vez o método atualizaDados. Retirei a chamada do método removeItem, por que pensei que pela sequência que era chamado, não precisava duas vezes, mas não funcionou. Por que isto ocorre?
<script>
var atualizaDados = function(){
var items = $(".item-total");
var total = 0;
for(var i=0; i < items.length; i++) {
var conteudo = $(items[i]).text();
var preco = parseFloat(conteudo);
total += preco;
}
$("#valor-total").text(total);
$("#quantidade-de-itens").text(items.length);
};
var removeItem = function(event) {
event.preventDefault();
var self = $(this);
self.closest("tr").remove();
atualizaDados();
};
var aposInicializado = function() {
$(".remove-item").click(removeItem);
atualizaDados();
};
$(aposInicializado);
</script>