Ich versuche so etwas wie ein Textfeld zu programmieren, nur um es zu trainieren.
Ich habe ein div mit (benutzergeneriertem) Text drin:
%Vor%Wenn ich (zB mit der linken Maustaste) zwischen die beiden "L" von "Hallo" klicke, würde ich das gerne sehen:
%Vor%Wie erreiche ich das? Bis jetzt mache ich es mit ...
%Vor%... aber natürlich fügt es einfach den Cursor am Ende des div hinzu.
Wie kann ich feststellen, wo genau der Benutzer geklickt hat, wo er den Cursor (oder was auch immer) hinzufügen soll, wo der Text geteilt werden soll?
Danke
Bearbeiten:
Ich möchte nicht contatteditable verwenden! Schau es dir einfach so an: Ich möchte eine Zeichenfolge an der Mausklick-Position teilen.
Ich weiß .append () ist nicht das, wonach ich suche! .append () war nur ein Platzhalter für eine spätere, bessere Funktion. DIESE Funktion, nach der ich gerade frage,
Ich verwende eine Schriftart mit fester Breite.
Das ist so nah wie möglich: DEMO
%Vor%Ich hoffe, es ist nah genug! :)
HINWEIS:
Dieser Code wird unter der Annahme geschrieben, dass font-size
ist 16px
!
Ich fürchte, Sie müssen die font-size
für weitere Erweiterungen berechnen.
Beachten Sie, gibt die erwarteten Ergebnisse bei Firefox nicht zurück; chrome gibt die erwarteten Ergebnisse zurück, obwohl sich der Cursor um 1 Zeichen nach links oder rechts bewegen kann, wenn die Maus nicht langsam freigegeben wird.
jsfiddle Ссылка
Tags und Links javascript html jquery mouse