2010-05-16 3 views
2

Je veux faire un double clic sur un div, mais maintenant il "sélectionne"/surligne un mot. Comment puis-je faire en sorte que cela n'arrive pas?Comment puis-je faire en sorte que lorsque je double-clique sur un div, il ne sélectionne pas le mot?

J'ai essayé:

$(this).hide().show() 

and 

$(this).blur() 

Mais il souligne encore le mot.

+0

Pourquoi? – SLaks

+0

Parce que j'ai actuellement un événement de clic attaché à cette div. Mais je ne veux pas mettre en évidence le mot lorsque les gens double accidentellement. – TIMEX

+0

Ensuite, vous voulez probablement empêcher l'élément d'être sélectionné du tout. – SLaks

Répondre

4

Vous pouvez empêcher un élément d'être sélectionné dans la plupart des navigateurs comme ceci:

elem.onselectstart = function() { return false; }; 
elem.unselectable = "on"; 
$(elem).css({ "-moz-user-select": 'none', "-webkit-user-select": 'none' }); 

Vous pouvez essayer de le faire en cas click et défaire une ou deux secondes plus tard à l'aide setTimeout.

+0

ne devrait pas choisir de faire un 'e.preventDefault' ici? – kibibu

+0

@kibibu: Pourquoi s'embêter? – SLaks

+1

kibibu: Non. 'Return false' est tout ce dont vous avez besoin pour les gestionnaires d'événements assignés via la méthode" DOM0 ", c'est-à-dire assigner la fonction de gestionnaire d'événement à la propriété appropriée. Cela fonctionne dans tous les navigateurs. Le 'preventDefault()' de l'événement n'intervient que pour les gestionnaires d'événements assignés via 'addEventListener()'. –

Questions connexes