J'ai une table et je permets aux utilisateurs de sélectionner plusieurs lignes. Tout cela est géré à l'aide d'événements jQuery et de CSS pour indiquer visuellement que la ligne est 'sélectionnée'. Lorsque l'utilisateur appuie sur Maj, il est possible de sélectionner plusieurs lignes. Parfois, le texte est mis en surbrillance. Est-il un moyen d'empêcher cela?Empêcher la surbrillance du tableau de texte
Répondre
Il y a une propriété CSS3 pour cela.
#yourTable {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
Dommage qu'Internet Explorer ne s'en soucie pas. Testé en 6-8. –
@NathanTaylor Après le googling, vous trouverez un doublon où cela est déjà résolu: http://stackoverflow.com/questions/826782/css-rule-to-disable-text-selection-highlighting – Dan
'Validation (CSS 3.0):" moz-none "n'est pas une valeur valide pour la propriété" -moz-user-select ". Et en effet, cela n'a pas fonctionné pour Firefox tant que je n'ai pas changé' moz-none' en 'none'. – Nolonar
Vous pouvez essayer avec la fonction focus() sur le texte sélectionné - la sélection disparaît.
$('#someEl').focus();
Si vous voulez avoir le contrôle lorsque vos utilisateurs peuvent choisir ou non partie de votre site, vous pouvez utiliser ce little jQuery plugin.
jQuery.fn.extend({
disableSelection : function() {
return this.each(function() {
this.onselectstart = function() { return false; };
this.unselectable = "on";
jQuery(this).css('user-select', 'none');
jQuery(this).css('-o-user-select', 'none');
jQuery(this).css('-moz-user-select', 'none');
jQuery(this).css('-khtml-user-select', 'none');
jQuery(this).css('-webkit-user-select', 'none');
});
}
});
et l'utiliser comme:
// disable selection on #theDiv object
$('#theDiv').disableSelection();
Sinon, vous pouvez simplement utiliser ces css attributs dans votre fichier css:
#theDiv
{
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
Je supprime simplement la sélection effectuée à l'aide de la touche Maj. Cela pourrait montrer un peu scintillement si
if (event.shiftKey) {
window.getSelection().removeAllRanges()
}
Juste une note sur la réponse de Cleiton ci-dessus - l'exemple de code semble bien fonctionner, mais pour être un bon citoyen dans le monde jQuery, vous devez retourner le jQuery objet à la fin de la fonction afin qu'il soit chainable - simple ajout d'une ligne fixe que jusqu'à:
jQuery.fn.extend({
disableSelection : function() {
this.each(function() {
this.onselectstart = function() { return false; };
this.unselectable = "on";
jQuery(this).css('-moz-user-select', 'none');
});
return this;
}
});
Cheers, espérons que cela est utile.
Il le fait avec "return this.each (function() {..." – frontendbeauty
Si vous avez Jquery UI sur vos pages, il suffit d'utiliser
$("element-selector").disableSelection();
::-moz-selection { /* Code for Firefox */
color: black;
background: none;
}
::selection {
color: black;
background: none;
}
de http://www.w3schools.com/cssref/sel_selection.asp
en fait de la section essayer-il, après avoir changé les valeurs.
Notez cependant que le curseur est toujours en forme de 'I' ...
Remarque: Le pseudo-élément :: selection a été rédigé pour CSS Selectors Level 3, mais supprimé avant le statut Recommendation. Pour le moment, le pseudo-élément :: selection ne fait partie d'aucune spécification. (Cependant, il peut être rajouté aux futures spécifications CSS.) – luk2302
- 1. Définir la couleur de surbrillance du texte de Blackberry RichTextField
- 2. Modifier la couleur de surbrillance du texte sélectionné dans RichEdit
- 3. Comment empêcher l'habillage d'un texte dans une cellule de tableau
- 4. Programmation de la police et de la syntaxe Mise en surbrillance du texte de test/d'échantillon
- 5. Zone de texte HTML, texte de mise en surbrillance automatique
- 6. Mise en surbrillance de texte modifiable
- 7. Mettre en surbrillance du texte dans un contrôle Webbrowser .net
- 8. OS X Obtenez le texte en surbrillance
- 9. Validation de données ASP.NET MVC - Mettre en surbrillance la ligne de tableau par rapport aux boîtes de texte
- 10. Jquery: Mettre en surbrillance/Dégager la ligne du tableau sur le clic
- 11. Mettre le texte en surbrillance dans la boîte aux messages
- 12. Empêcher l'édition du fichier
- 13. Couleurs de texte dans un NSTableColumn en surbrillance
- 14. Empêcher la sélection de texte après un double-clic
- 15. Conversion du contenu d'une zone de texte en un tableau
- 16. Mettez en surbrillance du texte dans une visionneuse de rapports Jasper
- 17. Comment puis-je empêcher le texte et/ou le contenu de la page de double-cliquer sur la surbrillance en html et javascript?
- 18. Comment empêcher la décompilation du code ActionScript
- 19. Mise en surbrillance de la syntaxe OpenOffice
- 20. Mise en surbrillance du menu Asp.Net
- 21. Mise en surbrillance du code dans Resharper
- 22. LaTeX: Empêcher les retours à la ligne dans une partie du texte
- 23. Sélectionner le texte du contrôle dans la ligne du tableau avec JQuery
- 24. emma maven code du plugin en surbrillance
- 25. Remplir la liste du tableau
- 26. Mise en surbrillance de la syntaxe VB.NET dans une zone de texte enrichi
- 27. Vérification du script dans la zone de texte asp.net
- 28. Mettez en surbrillance le texte d'une page après son rendu
- 29. Désactiver la loupe de mise en surbrillance de texte lors de la mise en attente sur Mobile Safari/Webkit
- 30. Empêcher l'héritage du descripteur de fichiers dans la librairie multitraitement
duplication possible de [Règle CSS pour désactiver la surbrillance de la sélection de texte] (http://stackoverflow.com/questions/826782/css-rule-to- disable-text-selection-highlighting) – Dan