Domanda

Dopo aver usato .select() Per selezionare il testo nella casella di input quando sono stato litigato ho fatto quanto segue:

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.
});

Vedere qui. Avviso per funzionare correttamente (in jsfiddle) è necessario fare clic una volta nel frame dei risultati.

L'idea principale è mouseleave funziona come come previsto anche.

Come avrai notato, non riesco a trovare un modo per non selezionare il testo quando si libra ed eviti questo:

enter image description here

È stato utile?

Altri suggerimenti

Se stai usando jQuery, prova a usare BluR ().

$(this).blur();

In questo caso, Blur () non si sfocano dal testo di input e sebbene dia l'aspetto il testo non viene più selezionato, è ancora selezionato. Per non selezionare veramente qualsiasi testo, faresti:

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

Questo funziona:

$(".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();

});

Dovrebbe esserci un modo migliore per risolverlo.

Modifica: ovviamente c'è blur().

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

Se usi jQuery, è possibile provare uno dei tanti plugin per non selezionare o impostare la posizione di cura in base alle tue esigenze, ad esempio Questo. In caso contrario, puoi comunque usare il puro Javascript di questi plugin a causa delle licenze open-source

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top