Abschließen, was in einer Eingabe mit .Select () ausgewählt wurde
Frage
Nachdem ich benutzt habe .select()
Um den Text im Eingabefeld auszuwählen, wenn ich überholte, habe ich Folgendes gemacht:
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.
});
Sehen hier. Warnung dafür, dass es korrekt funktioniert (in JSFiddle) Sie müssen einmal im Ergebnisrahmen klicken.
Die Hauptidee ist mouseleave
arbeitet als wie erwartet Auch.
Wie Sie vielleicht bemerkt haben, kann ich keinen Weg finden, den Text auszuwählen, wenn Sie ausgehen und dies vermeiden:
Lösung
verwenden .blur();
Andere Tipps
Wenn Sie JQuery verwenden, verwenden Sie Blur ().
$(this).blur();
In diesem Fall ist Blur () nur Unfokus aus dem Eingabetxt, und obwohl er das Erscheinungsbild gibt, wird der Text nicht mehr ausgewählt, er wird noch ausgewählt. Um jeden Text wirklich abzuwählen, würden Sie dies tun:
$(".hoverAble").mouseenter(function() {
this.select();
}).mouseleave(function() {
$(this).prop('selectionStart', 0).prop('selectionEnd',0).blur();
});
Das funktioniert:
$(".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();
});
Es sollte einen besseren Weg geben, es zu lösen.
EDIT: Natürlich gibt es blur()
.
input.hover(function(){$(this).select();}, function(){$(this).val($(this).val());});
Wenn Sie JQuery verwenden, können Sie eines der vielen Plugins für die Abwahl oder Einstellung der Pflegeposition nach Ihren Anforderungen probieren, z. B. nach Ihren Anforderungen, z. B. nach Ihren Anforderungen Dieses hier. Wenn Sie dies nicht tun, können Sie das reine JavaScript dieser Plugins aufgrund der Open-Source-Liden immer noch verwenden