Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Incremento de valores!

Pessoal, boa noite!

Apliquei este código no meu arquivo, entretanto os valores não estão incrementando quando se adiciona o badge. Vocês poderiam me ajudar, por gentileza???

Segue o meu código:

$('.collection').on('click', '.collection-item', function(){
    var $badge = $('.badge', this);
    if($badge.length == 0)
    {
        $badge = $('<span class="badge brown-text">0</span>').appendTo(this);
    }

    $badge.text(parseInt($badge.text()) + 1);
})

Segue o código do exercício no Alura.

Detalhe: Já importei o arquivo app.js no meu arquivo HTML.

4 respostas

Quando você clica no item da lista ele mostra o aviso de "adicionado" e coloca "1" no canto direito? Ou o problema é quando você clica várias vezes no produto?

Deixe o console ativado para ver se não aparece alguma mensagem de erro (sintaxe ou carregamento de arquivo).

Na página index, o HTML deve estar assim (exemplo)

<div id="bolos" class="section">
        <h6 class="container brown-text">Fatia</h6>
        <div class="collection">
            <a class="collection-item waves-effect black-text">Só de Cenoura</a>
            <a class="collection-item waves-effect black-text">Com Nutella</a>
            <a class="collection-item waves-effect black-text">De Brigadeiro</a>
            <a class="collection-item waves-effect black-text">Açucarado</a>
        </div>

        <h6 class="container brown-text">Inteiro</h6>
        <div class="collection">
            <a class="collection-item waves-effect black-text">Só de Cenoura inteiro</a>
            <a class="collection-item waves-effect black-text">Com Nutella inteiro</a>
            <a class="collection-item waves-effect black-text">De Brigadeiro inteiro</a>
            <a class="collection-item waves-effect black-text">Açucarado inteiro</a>
        </div>
    </div>

No final da página index, os includes devem estar assim

<script src="cordova.js"></script>
    <script src="js/jquery.min.js"></script>
    <script src="js/materialize.min.js"></script>
    <script src="js/app.js"></script>

No seu arquivo app.js, a programação que ativa o clique no produto deve estar assim:

$('.collection').on('click', '.collection-item', function(){

        var $badge = $('.badge', this);
        if ($badge.length === 0) {
            $badge = $('<span class="badge brown-text">0</span>')
                        .appendTo(this);
        }



        $badge.text(parseInt($badge.text()) + 1);

        var nomeProduto = this.firstChild.textContent;
        Materialize.toast(nomeProduto + ' adicionado', 1000);
    });

Olá Danilo, boa noite! Tudo bem?

Posso clicar quantas vezes for, o incremento não aparece. Até adicionei alguns e conferi os códigos que você me passou agora, mesmo assim, não funcionou. Também conferi o carregamento dos arquivos e está tudo Ok!!!

Oi lucas, consegue ver se aparece algum erro no console do navegador?

solução!

Daniel,

observei que no seu seletor do jquery você utilizou a seguinte estrutura:

$('.collection').on('click', '.collection-item', function(){
....

O que pode estar ocorrendo é que o seu html pode estar com alguma referência invalida em nome de classes aplicadas (até por um erro de digitação).

Posta seu codigo html completo da pagina e o javascript pra gente dar uma olhada melhor.

Até mais