Existe algo no jquery que me permite diferenciar entre o comportamento de clique duplo e clique único?
Quando eu vinculo ambos ao mesmo elemento, apenas um único clique é executado.
Existe uma maneira de esperar algum tempo antes da execução do único clique para ver se o usuário clica novamente ou não?
Obrigado :)
jquery
jquery-selectors
Kritya
fonte
fonte
Respostas:
Descobri que a resposta de John Strickler não fez exatamente o que eu esperava. Depois que o alerta é disparado por um segundo clique na janela de dois segundos, cada clique subsequente dispara outro alerta até que você espere dois segundos antes de clicar novamente. Assim, com o código de John, um clique triplo atua como dois cliques duplos, onde eu esperaria que atuasse como um clique duplo seguido por um único clique.
Retrabalhei sua solução para funcionar dessa maneira e fluir de uma forma que minha mente possa compreender melhor. Eu diminuí o atraso de 2.000 para 700 para simular melhor o que eu consideraria uma sensibilidade normal. Aqui está o violino: http://jsfiddle.net/KpCwN/4/ .
Obrigado pela fundação, John. Espero que esta versão alternativa seja útil para outras pessoas.
fonte
.on()
sobre ambos agora$("document").on("click","a" function(e){
em vez disso na linha 5. Esta construção substitui odelegate()
uso obsoleto . Em vez dedocument
você pode / deve usar qualquer objeto paia
do DOM, tanto quanto possível, que persiste no tempo.A solução fornecida por "Nott Responding" parece disparar ambos os eventos, clique e dblclick quando clicado duas vezes. No entanto, acho que aponta na direção certa.
Fiz uma pequena mudança, este é o resultado:
Tente
http://jsfiddle.net/calterras/xmmo3esg/
fonte
Claro, vincule dois manipuladores, um a
click
e outro adblclick
. Crie uma variável que aumenta a cada clique. então reinicia após um atraso definido. Dentro da função setTimeout você pode fazer algo ...fonte
Você provavelmente poderia escrever sua própria implementação customizada de click / dblclick para que ela espere por um clique extra. Não vejo nada nas funções principais do jQuery que ajudem você a conseguir isso.
Citação de .dblclick () no site jQuery
Não é aconselhável vincular os manipuladores aos eventos click e dblclick para o mesmo elemento. A sequência de eventos disparados varia de navegador para navegador, alguns recebendo dois eventos de clique antes do dblclick e outros apenas um. A sensibilidade do clique duplo (tempo máximo entre os cliques detectado como um clique duplo) pode variar de acordo com o sistema operacional e o navegador, e geralmente é configurável pelo usuário.
fonte
Observe o seguinte código
A demonstração vai aqui http://jsfiddle.net/cB484/
fonte
Eu escrevi um plugin jQuery que permite também delegar os eventos click e dblclick
fonte
$("body").multipleClicks('#mySelector', function(){ /* do something on click */},function(){/* do something on doubleclick */},300);
fonte
estou implementando esta solução simples, http://jsfiddle.net/533135/VHkLR/5/
código html
código de script
não é muito lento
fonte
Esta solução funciona para mim
fonte
Fiz algumas alterações nas respostas acima que ainda funcionam muito bem: http://jsfiddle.net/arondraper/R8cDR/
fonte
E, finalmente, usamos como.
fonte
Igual à resposta acima, mas permite o clique triplo. (Atraso 500) http://jsfiddle.net/luenwarneke/rV78Y/1/
fonte
Este é um método que você pode fazer usando o JavaScript básico, que funciona para mim:
fonte
Abaixo está minha abordagem simples para o problema.
Função JQuery:
Implementação:
Inspecione o elemento clicado no Firefox / Chrome para ver os cliques de dados sobem e descem conforme você clica, ajuste o tempo (1000) para se adequar.
fonte