2
respostas

Esconder propagandas nao funciona

Olá pessoal, a função de alternarPropaganda não esta funcionando, fiz as alterações no html e carrinho.js , fiz conforme o video e texto.

index.html

<h2>Geral</h2>
    <a href="" class="alterna-propaganda">Esconder propagandas</a>
    <a href="" id="mostra-propagangas" class="alterna-propaganda">Mostrar propagandas</a>

carrinho.js

var umaPropaganda = function() {
    var propagandas = ["O que acha de comprar uma motocicleta?",
                       "O que acha de comprar uma mochila?",
                       "O que acha de comprar uma bicicleta?",
                       "O que acha de comprar uma lancha?"
                       ];
    var posicao = Math.floor(propagandas.length*Math.random());
    var texto = propagandas[posicao];
    var tr = $("<tr>").addClass("propaganda").append($("<td>"));
    tr.find("td").attr("colspan", 6).text(texto);
    return tr;
}
var atualizaDados = function() {
    var carrinhos = $(".carrinho");
    carrinhos.each(function() {
        var carrinho = $(this);
        var items = carrinho.find(".item-total:visible");    
    var total = 0;
    for(var i = 0;i < items.length;i++) {
        var conteudo = $(items[i]).text();
        var preco = parseFloat(conteudo);
        total += preco;
        }
    carrinho.find(".valor-total").text(total);
    carrinho.find(".quantidade-de-itens").text(items.length);
    });    
};

var removeItem = function(event) {
        event.preventDefault();

        var self = $(this);
        self.closest("tr").hide();        
        atualizaDados();
    };

var undo = function () {
    var carrinho = $(this).closest(".carrinho");    
    carrinho.find("tr:visible").removeClass("recuperado");

    var trs = carrinho.find("tr:hidden");
    trs.addClass("recuperado").show();
    atualizaDados();
}
var daDestaque = function() {
    $(this).find(".remove-item").fadeIn()
    $(this).addClass("hovering");
};
var tiraDestaque = function(){
    $(this).find(".remove-item").fadeOut()
    $(this).removeClass("hovering");
};

var alternaPropagandas = function(event) {
    event.preventDefault();
    $(".propaganda").fadeToggle();    
    $(".alterna-propaganda").toggle()
};

var aposInicializacao = function() {
    atualizaDados();
    $(".undo").click(undo);
    $(".remove-item").click(removeItem);
    $(".carrinho").each(function(){
        $(this).find("tr:nth-child(3n), tr:last").each(function(){
        umaPropaganda().insertAfter($(this));
        });
    });
    $(".carrinho tbody tr").hover(daDestaque,tiraDestaque);
    $(".alterna-propaganga").click(alternaPropagandas);
}
$(aposInicializacao);
2 respostas

Esse código .html não parece estar completo, informe todo o código necessário pra reproduzir o erro sem ter que se increver no curso apenas para acessar o exercício.

Qual o erro que apareceu no console quando você tentou acionar a função alternarPropaganda?

Achei um erro no css #mostra-propagangas ele estava com mostra-propaganga e no carrinho.js faltou colocar um ponto e virgula:

    $(".alterna-propaganda").toggle()

$(".alterna-propaganda").toggle();