Referencia:
jsFiddle Demo with Plugin
Lo anterior jsFiddle demo que hizo utiliza un plugin para permitirle prevenir cualquier bloque de texto que se seleccione en Android o iOS dispositivos (junto con los navegadores de escritorio también).
Es fácil de usar y aquí está el marcado de muestra una vez que se instala el plugin jQuery.
HTML de ejemplo: jQuery
<p class="notSelectable">This text is not selectable</p>
<p> This text is selectable</p>
muestra: código
$(document).ready(function(){
$('.notSelectable').disableSelection();
});
Plugin:
$.fn.extend({
disableSelection: function() {
this.each(function() {
this.onselectstart = function() {
return false;
};
this.unselectable = "on";
$(this).css('-moz-user-select', 'none');
$(this).css('-webkit-user-select', 'none');
});
return this;
}
});
por su comentario mensaje:I still need to be able to trigger events (notably, touchstart, touchmove, and touchend) on the elements.
yo simplemente habría utilizar un envoltorio que es no afectados por este plugin, sin embargo, es de texto contenidos están protegidos uso de este plugin.
para permitir la interacción con un enlace en un bloque de texto, puede utilizar span tags
para todos, pero el enlace y añadir el nombre de clase .notSelected
sólo para aquellos span tags
, preservando así la selección y la interacción del enlace anclas.
Actualización de estado: Esta actualización jsFiddle confirma que le preocupa que quizás otras funciones no funcionen cuando se desactiva la selección de texto. En este jsFiddle actualizado se muestra jQuery Click Event listener que activará una alerta del navegador cuando se haga clic en el texto en negrita, incluso si ese texto en negrita no es seleccionable por texto.
Hmmm. El Fiddle parecía funcionar cuando lo probé en mi teléfono, pero no estoy 100% seguro de que funcione para mí en producción. Todavía necesito poder activar eventos (notablemente, 'touchstart',' touchmove', y 'touchend') en los elementos. Aunque, teniendo en cuenta que esto solo está actuando en 'select'tart', podríamos ser buenos. Lo probaré esta noche y te responderé :) –