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

Dúvida no Ex. 7 da Aula 4 - Estilos dinâmicos e animações

E se quiséssemos aceitar os 2 eventos? - Click para dar o alert - Dblclick para remover

Testando percebi que apenas o click funciona, como eu já imaginava. Existe a possibilidade do jQuery tratar isso?

5 respostas

Rafael eu desconheço essa opção para o mesmo elemento, pois o evento dblclick antes vai disparar o click duas vezes, ou seja, iria exibir seu alert 2 vezes para depois remover.

Imaginei algo como um timer. Situação 1{ - Clique! - Aguarda um certo tempo... - Mais nenhum clique executo a função 'click()'. }

Situação 1{ - Clique! - Aguarda um certo tempo... - Outro clique! - Aborto a função click() - Executo a função a função 'dblclick()' }

Deve ser possível...

Sim, é possível com setTimeout mas acredito não ser uma boa prática, pelo menos eu não faria assim.

solução!

Uma solução possível:

var cancelaTimeOut; 
var totalDeCliques = 0;

$('h1').on('click', function() {

  totalDeCliques++;

  clearTimeout(cancelaTimeOut);

  if(totalDeCliques == 2) {

     alert('Você deu dois cliques');
     totalDeCliques = 0;
  } else {

      cancelaTimeOut = setTimeout(function() {
        alert('você clicou uma vez');
        totalDeCliques = 0;
      },500);
  }
});

Obrigado Matheus e mestre Flávio Almeida!