Set cursor an das Ende des contenteditable div
Ich versuche, um den cursor zum Ende des nächsten/vorherigen tag contenteditable, wenn die aktuelle leer ist, aber wenn ich den Fokus, fügt es den Fokus auf den Anfang des Textes und nicht am Ende
Versucht, fast alle in Lösung auf, SO aber keiner schien zu funktionieren für mich. Hier der einfache code, den ich versuche
HTML-CODE
<div id = 'main'>
<div id = 'n1' contenteditable=true> Content one</div>
<div id = 'n2' contenteditable=true> Content 2</div>
<div id = 'n3' contenteditable=true> Content 3</div>
<div id = 'n4' contenteditable=true> Content 4</div>
JS-CODE
$('#main div').keydown(function(){
if(!$(this).text().trim()){
$(this).prev().focus();
//setCursorToEnd(this.prev())
}
});
function setCursorToEnd(ele)
{
var range = document.createRange();
var sel = window.getSelection();
range.setStart(ele, 1);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
ele.focus();
}
dies ist viele Male beantwortet. werfen Sie einen Blick auf diesen thread: stackoverflow.com/questions/1125292/...
jsfiddle.net/dvH5r/3 plz finden Sie die Geige hier , mache ich etwas falsch. Schauen
jsfiddle.net/dvH5r/3 plz finden Sie die Geige hier , mache ich etwas falsch. Schauen
InformationsquelleAutor Ross | 2012-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
sind Sie mit jQuery und immer das element von jQuery. Müssen Sie es konvertieren in eine native DOM-element (über die jQuery-get-Funktion) zur Verwendung der "setCurserToEnd"-Funktion:
Ihre Methode-Aufruf:
funktionierende Lösung:
finden Sie die aktualisierte fiddle: http://jsfiddle.net/dvH5r/4/
Hallo. In Ihrem demo bei JSFiddle, warum es ist, dass ich nicht fügen Sie text in ein leeres div? Es deutet immer auf ein div vor.
verstehe nicht, dass die Frage, funktioniert bei mir
InformationsquelleAutor hereandnow78
Waren Sie ziemlich nahe, das problem ist nur, das prev() gibt ein jQuery-Objekt, in der Erwägung, dass Sie wollen, passieren die eigentlichen DOM-element setCursorToEnd()
Fertigen Produkt: http://jsfiddle.net/B5GuC/
*Hinweis: dies funktioniert auch, wenn die oben genannten div-element ist leer. Vanilla js ftw.
InformationsquelleAutor gkiely
Seine ratsam, dass Sie die plugi jCaret als Browser sind weit unterschiedlichen in dies zu tun. Zum Beispiel können Sie abrufen, Ihre aktuelle position im Feld mit
Könnte man dann einstellen Sie die position mit (nicht getestet)
jCaret nicht für diese Arbeit. Es ist konzipiert für text ein-und Texteingabefelder, nicht contenteditable Elemente.
InformationsquelleAutor toxicate20