Je sais que cette question a déjà été posée (ici), mais toutes les réponses que j'ai trouvées portaient sur css sélecteur: sélection (qui n'est pas encore trop largement supporté par les navigateurs).

Alors, comment puis-je désactiver la sélection de texte sur ma page html via jQuery, sans compter sur les astuces CSS?

6
user848763 6 oct. 2011 à 18:05

4 réponses

Meilleure réponse

Essayez cela http://code.jdempster.com/jQuery.DisableTextSelect /jquery.disable.text.select.js

-2
Merianos Nikos 6 oct. 2011 à 14:09

Si vous voulez éviter les plugins, vous pouvez extraire les parties pertinentes de la source jQuery UI:

/*!
 * jQuery UI 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI
 */
$.support.selectstart = "onselectstart" in document.createElement("div");
$.fn.disableSelection = function() {
    return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
        ".ui-disableSelection", function( event ) {
        event.preventDefault();
    });
};

$("#somediv").disableSelection();
12
Dennis 6 oct. 2011 à 17:55

Voici une simple ligne pour désactiver la sélection de texte sur toute votre page. (si vous devez ou non est une autre question)

$(document).bind('selectstart dragstart', function(e) {
  e.preventDefault();
  return false;
});
14
Legionar 28 août 2015 à 13:08

Incluez jQuery UI et utilisez $(element).disableSelection().

Cependant, la désactivation de la sélection de texte est très peu conviviale pour l'utilisateur, sauf si elle est utilisée dans un contexte où des sélections accidentelles sont probables (par exemple, glisser-déposer ou boutons où les utilisateurs sont susceptibles de double-cliquer pour effectuer plusieurs modifications plus rapidement (par exemple dans les filateurs))

4
ThiefMaster 6 oct. 2011 à 14:06