2010-08-12 29 views
11

En mi aplicación web, el usuario a veces puede hacer clic en el mismo botón varias veces, salteando mensajes y cosas, haciendo que se seleccione </a>.¿Cómo puedo evitar que se seleccione texto?

Entonces, ¿cómo puedo evitar que esto usando Javascript (jQuery)

+0

¿Evitará que continúen cruzando mensajes? De lo contrario, recomendaría que no lo haga, ya que probablemente también lo evitará cuando QUIERA seleccionar texto. –

+0

No me parece que afecte a su capacidad de navegación, simplemente seleccione accidentalmente. El enlace que incluyó Marek en su respuesta a continuación permite desactivar la selección de texto solo en ciertos elementos. Es de suponer que Ben solo desactivará la selección en la etiqueta que está matando a sus usuarios. – sblom

Respuesta

2

Esta solución funcionó para mí: http://chris-barr.com/entry/disable_text_selection_with_jquery/

$(function(){ 
    $.extend($.fn.disableTextSelect = function() { 
     return this.each(function(){ 
      if($.browser.mozilla){//Firefox 
       $(this).css('MozUserSelect','none'); 
      }else if($.browser.msie){//IE 
       $(this).bind('selectstart',function(){return false;}); 
      }else{//Opera, etc. 
       $(this).mousedown(function(){return false;}); 
      } 
     }); 
    }); 
    $('.noSelect').disableTextSelect();//No text selection on elements with a class of 'noSelect' 
}); 
+0

Esa url parece haberse trasladado a: http://chris-barr.com/index.php/entry/disable_text_selection_with_jquery/ – Dwayne

+0

Este enlace ahora también está roto. –

+0

El ejemplo en el enlace no funciona con la última versión de Jquery. $ .browser ya no existe. –

29

usted no necesita guión para esto, aquí es el css:

-webkit-touch-callout: none; 
-webkit-user-select: none; 
-khtml-user-select: none; 
-moz-user-select: none; 
-ms-user-select: none; 
user-select: none; 
+2

Es probable que la persona que ha hecho la solicitud haya decidido previamente que desea usar JS para esto, pero su respuesta es mucho mejor que cualquier script. +1 – mavrosxristoforos

+1

Funciona en Chrome 25, pero no funciona para mí en IE10. Ctrl + A selecciona todo el texto en la página. Impide que se seleccione el texto si hago doble clic en el texto, pero si lo arrastro desde un área que no usa este CSS en el área que está utilizando este CSS, sigue resaltando el texto. –

Cuestiones relacionadas