Je suis en train de mettre en œuvre la fonctionnalité de sélection d'éléments en javascript (en utilisant jQuery). article est un li qui contient du code HTML.
l'utilisateur peut cliquer sur un élément (le fait sélectionné), puis cliquez sur un autre élément pour sélectionner tous les éléments entre les deux. cela fonctionne essentiellement bien, mais le Maj-clic sélectionne également (en surbrillance) le texte qui apparaît à l'intérieur des éléments (la fonctionnalité de base du navigateur pour les clics sur Maj). est-il possible de désactiver cela?désactiver la sélection de texte tout en appuyant sur «shift»
Répondre
Essayez un combo JavaScript et CSS pour empêcher la sélection en premier lieu:
$('li').attr('unselectable', 'on'); // IE
css (pour les navigateurs non IE):
li {
user-select: none; /* CSS3 (little to no support) */
-ms-user-select: none; /* IE 10+ */
-moz-user-select: none; /* Gecko (Firefox) */
-webkit-user-select: none; /* Webkit (Safari, Chrome) */
}
Essayez ceci après la touche Maj + clic ...
document.getSelection().removeAllRanges();
Si cela ne suffit pas efficace, vous pourriez avoir à annuler aussi l'événement onselectstart ...
window.onload = function() {
document.onselectstart = function() {
return false;
}
}
+1 pour l'annulation des onselectstart. –
J'ai une application comme ça. Trick est, je voulais permettre la sélection, mais je voulais aussi Ctrl-clic et Maj-clic pour sélectionner des éléments.
Ce que je trouve est que tout le monde, mais IE vous permet de battre ce en annulant l'événement mousedown et dans IE ce qui fonctionne le mieux est de désactiver temporairement onselectstart:
$("#id").mousedown(function (e) {
if (e.ctrlKey || e.shiftKey) {
// For non-IE browsers
e.preventDefault();
// For IE
if ($.browser.msie) {
this.onselectstart = function() { return false; };
var me = this; // capture in a closure
window.setTimeout(function() { me.onselectstart = null; }, 0);
}
}
});
C'était le secret que je cherchais. Sur Chrome, vous obtenez un éclair de sélection momentané, et Safari doit également ajouter 'document.getSelection(). RemoveAllRanges();' – prototype
Si vous avez des cases à cocher dans vos lignes de table (articles), vous pouvez simplement mettre l'accent sur la case à cocher de la ligne une fois que vous avez fait la sélection. Mettre l'accent sur la case à cocher devrait éliminer la sélection du navigateur. Vous pouvez également vous concentrer sur une zone de texte ou un autre élément de formulaire. Pour JQuery,
$('tr').bind('click', function(e) {
// If shift key was down when the row was clicked
if (e.shiftKey) {
// Make the row selected
$(this).parent().children().slice($(last).index(), $(this).index()+1).addClass('selected').find('input:checkbox').attr('checked', true);
// Now focus on the checkbox within the row
$('input:checkbox', $(this)).focus();
}
});
- 1. WPF TextBox - sélectionne le texte par programmation tout en préservant la "direction de sélection"
- 2. Comment désactiver temporairement la sélection de texte en utilisant JavaScript?
- 3. Prévenir le comportement par défaut dans la saisie de texte tout en appuyant sur la flèche vers le haut
- 4. Interception de la touche Nokia Ctrl/Chr en appuyant sur
- 5. Comment détecter le clic droit de la souris tout en appuyant sur le bouton gauche de la souris dans IE?
- 6. sélection de texte en CSS?
- 7. En appuyant sur une touche dans C#
- 8. La soumission d'un formulaire sur un contrôle utilisateur en appuyant sur Entrée dans un champ de texte ne fonctionne pas
- 9. UIPickerView désactiver la sélection de ligne
- 10. Désactivation de la sélection de texte dans DocumentViewer
- 11. WPF Toolkit Datagrid - comment désactiver la sélection?
- 12. Manipuler la sélection de texte dans Powerpoint
- 13. ASP.NET Appelez la fonction javascript en appuyant sur la touche Entrée
- 14. Comment bloquer la soumission d'un formulaire en appuyant sur la touche Entrée ou Retour?
- 15. En appuyant sur le bouton retour UINavigationController lors de la frappe
- 16. Problème de mise à jour de la ligne Gridview en appuyant sur Entrée
- 17. Désactiver la loupe de mise en surbrillance de texte lors de la mise en attente sur Mobile Safari/Webkit
- 18. Comportement de sélection Strange ListView sur Android
- 19. Comment arrêter la fermeture de l'application de boîte de dialogue mfc en appuyant sur ESC
- 20. Désactiver la sélection de lignes dans un datagridview
- 21. Désactiver les zones de texte
- 22. Shift opérations
- 23. Comment puis-je refléter la sélection de texte?
- 24. Pourquoi la valeur d'entrée ne peut pas être modifiée en appuyant sur la touche d'échappement
- 25. Comment puis-je faire pivoter une image de la flèche en appuyant sur cette image?
- 26. vim + iterm: comment utiliser la souris pour tout sauf la sélection?
- 27. Désactiver ou ignorer mousedown sur un champ de sélection dans firefox
- 28. Annulation de l'appel sur le thread en appuyant sur ctrl + c
- 29. Désactiver la boîte de sélection sans supprimer la valeur de la publication
- 30. Styler la couleur de sélection d'un type d'entrée = texte, possible?
Notez que l'unselectable = "on" doit aussi être sur tous les nœuds enfants (par exemple, div, p). Même un widget checkbox peut être cliqué par Maj. –
Ceci n'aborde pas la partie "tout en appuyant sur la touche". Voir @Anthony Mills répondre pour cela. – ahlexander