Estou lidando com o evento dblclick em um período no meu aplicativo da web. Um efeito colateral é que o clique duplo seleciona o texto na página. Como posso impedir que essa seleção aconteça?
javascript
selection-object
David
fonte
fonte
-ms-user-select: none;
ver blogs.msdn.com/b/ie/archive/2012/01/11/... @PaoloBergantinoEm javascript simples:
Ou com jQuery:
fonte
return false
usado,event.preventDefault()
que não mata nenhum outro manipulador que você possa ter na ratoeira.element
for uma área de texto, sim.Para impedir a seleção de texto SOMENTE após um clique duplo:
Você poderia usar a
MouseEvent#detail
propriedade. Para eventos de redução de mouse ou mouse, é 1 mais a contagem atual de cliques.Consulte https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
fonte
(event.detail === 2)
para realmente impedir APENAS clique duplo (e não clique três vezes etc.)FWIW, defino
user-select: none
o elemento pai desses elementos filhos que não quero que sejam selecionados de alguma maneira ao clicar duas vezes em qualquer lugar no elemento pai. E funciona! Coisa legal écontenteditable="true"
seleção de textos e etc. ainda funciona nos elementos filho!Assim como:
fonte
style="user-select: note"
todos os lugares resolveu o problema que eu estava tentando resolver :)Uma função Javascript simples que torna o conteúdo dentro de um elemento da página não selecionável:
fonte
Para quem procura uma solução para o Angular 2+ .
Você pode usar a
mousedown
saída da célula da tabela.E previna se o
detail > 1
.A
dblclick
saída continua a funcionar como esperado.fonte
ou, no mozilla:
No IE,
fonte
document.body
.Segmento antigo, mas encontrei uma solução que acredito ser mais limpa, pois não desativa todos os objetos vinculados ao objeto e apenas impede seleções de texto aleatórias e indesejadas na página. É simples e funciona bem para mim. Aqui está um exemplo; Quero impedir a seleção de texto quando clicar várias vezes no objeto com a classe "seta à direita":
HTH!
fonte
Se você estiver tentando impedir completamente a seleção de texto por qualquer método, bem como apenas com um clique duplo, poderá usar o
user-select: none
atributo css. Eu testei no Chrome 68, mas de acordo com https://caniuse.com/#search=user-select, ele deve funcionar nos outros navegadores de usuário normais atuais.Comportamental, no Chrome 68, ele é herdado por elementos filho e não permite selecionar o texto contido em um elemento, mesmo quando o texto ao redor e incluindo o elemento foi selecionado.
fonte
Para impedir IE 8 CTRL e SHIFT, clique na seleção de texto no elemento individual
Para impedir a seleção de texto no documento
fonte
Eu tive o mesmo problema. Eu o resolvi mudando para
<a>
e adicionandoonclick="return false;"
(para que clicar nele não adicione uma nova entrada ao histórico do navegador).fonte