Pregunta

Después de usar .select() Para seleccionar el texto en el cuadro de entrada cuando se desplaza, hice lo siguiente:

HTML:

<input type="text" class="hoverAble" value="hover here"/><br />

jQuery:

$(".hoverAble").mouseenter(function() {

    this.select();

}).mouseleave(function() {

    //I can't figure what to put here.
});

Ver aquí. Advertencia para que funcione correctamente (en jsfiddle) debe hacer clic una vez en el marco de resultados.

La idea principal es mouseleave está trabajando como como se esperaba además.

Como habrás notado, no puedo encontrar una manera de no seleccionar el texto cuando te pases y evitar esto:

enter image description here

¿Fue útil?

Otros consejos

Si está usando jQuery, intente usar blur ().

$(this).blur();

En este caso, Blur () solo se desabrode del texto de entrada, y aunque le da la apariencia el texto ya no está seleccionado, todavía está seleccionado. Para no seleccionar verdaderamente ningún texto, lo haría:

$(".hoverAble").mouseenter(function() {
    this.select();
}).mouseleave(function() {
    $(this).prop('selectionStart', 0).prop('selectionEnd',0).blur();
});

Esto funciona:

$(".hoverAble").hover(function() {

    $(this).select();
    $(this).after("<input type='text' style='height:0;width:0;border:0;padding:0;margin:0;' id='tmp_hidden' />");

}, function(){

    $("#tmp_hidden").select().remove();

});

Debería haber una mejor manera de resolverlo pensó.

EDITAR: Por supuesto que hay blur().

input.hover(function(){$(this).select();}, function(){$(this).val($(this).val());});

Si usa jQuery, puede probar uno de los muchos complementos para no seleccionar o establecer la posición del careto según sus necesidades, por ejemplo, Éste. Si no lo hace, aún puede usar el JavaScript puro de estos complementos debido a las licencias de código abierto

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top