tecla son pulsada principales numericas letras las funciones funcion evento escribir ejemplos ejemplo ejecutar detectar cuales comandos capas bandera javascript jquery

javascript - son - desactivar la selección de texto mientras presiona ''shift''



principales funciones javascript (4)

Estoy implementando la funcionalidad de selección de elementos en javascript (usando jQuery). el artículo es un li que contiene algunos html.
el usuario puede hacer clic en un elemento (lo selecciona) y luego hacer clic en otro elemento para seleccionar todos los elementos intermedios. esto básicamente funciona bien, sin embargo, el clic de mayúsculas también selecciona (resalta) el texto que aparece dentro de los elementos (la funcionalidad básica del navegador para los clics de cambio). ¿Hay alguna forma de desactivar esto?


Intenta esto después del Shift + clic ...

document.getSelection().removeAllRanges();

Si eso no es lo suficientemente efectivo, es posible que también deba cancelar el evento onselectstart ...

window.onload = function() { document.onselectstart = function() { return false; } }


Pruebe un combo de JavaScript y CSS para evitar la selección en primer lugar:

$(''li'').attr(''unselectable'', ''on''); // IE

css (para navegadores no 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) */ }


Si tiene casillas de verificación en las filas de su tabla (elementos), puede simplemente establecer el foco en la casilla de verificación de la fila una vez que haya hecho la selección. Centrándose en la casilla de verificación debería deshacerse de la selección del navegador. También puede enfocarse en un cuadro de texto u otro elemento de formulario. Para 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(); } });


Tengo una aplicación como esa. El truco es que quería permitir la selección, pero también quería Ctrl-clic y Shift-clic para seleccionar elementos.

Lo que encontré fue que todos menos IE te permiten vencer esto cancelando el evento mousedown, y en IE lo que funciona mejor es deshabilitar temporalmente 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); } } });