Question

Après que j'utilise .select() pour sélectionner le texte dans la zone d'entrée lorsque plané au-dessus je l'ai fait ce qui suit:

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

Voir . Avertissement pour correctement à la fonction (en jsFiddle), vous devez cliquer une fois dans le cadre de résultats.

L'idée principale est mouseleave travaille comme comme prévu aussi.

Comme vous avez sans doute remarqué, je ne peux pas trouver un moyen de non sélectionner le texte lorsque vous passez la souris sur et éviter ceci:

entrer image description ici

Était-ce utile?

Autres conseils

Si vous utilisez jQuery, essayez d'utiliser le flou ().

$(this).blur();

Dans ce cas, le flou () ne Unfocus du texte d'entrée, et bien qu'il donne l'impression que le texte est plus sélectionné, il est toujours sélectionné. Pour vraiment désélectionner tout texte, vous feriez:

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

Cela fonctionne:

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

});

Il devrait y avoir une meilleure façon de résoudre la pensée.

Edit:. Bien sûr, il y a blur()

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

si vous utilisez jQuery, vous pouvez essayer un des nombreux plugins pour décochant ou réglage de la position de caret par vos besoins, par exemple celui-ci . si vous ne le faites pas, vous pouvez toujours utiliser le JavaScript pur de ces plug-ins en raison des licences sources ouvertes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top