Próbuję programować coś w stylu textarea, tylko do treningu.jQuery: Podziel tekst na pozycję myszy click
Mam div z (generowane przez użytkowników) tekst w nim:
<div id="editor">Hello! I am a Text!</div>
Jeśli kliknę (z lewej MouseButton) pomiędzy dwoma „L” z „Hello”, na przykład, ja lubię to zobaczyć:
<div id="editor">Hel<div id="cursor">|</div>lo! I am a Text!</div>
Jak to osiągnąć? Do tej pory robię to z ...
//HTML
<div id="editor" onclick="setCursorWithMouse()"><!-- User-Text --></div>
//jQuery
function setCursorWithMouse(){
$('#editor').append('<div id="cursor">|</div>');
}
... ale, oczywiście, po prostu dodaje kursor na końcu div.
Skąd mogę wiedzieć, gdzie dokładnie kliknął użytkownik, gdzie dodać kursor (lub cokolwiek innego), gdzie podzielić tekst?
Dzięki
Edit:
Nie chcę używać contenteditable! Po prostu spójrz na to w ten sposób: chcę podzielić ciąg znaków w pozycji kliknięcia myszą.
Wiem .append() nie jest tym, czego szukam! .append() był tylko symbolem zastępczym dla późniejszej, lepszej funkcji. Tę funkcję, o którą teraz pytam.
Używam czcionki o stałej szerokości.
To wygląda tak, jak chcesz, aby stworzyć swój własny edytor tekstu. W tym celu powinieneś rzucić okiem na [html's contenteditable] (https://www.google.com/?q=html%20contenteditable#q=html+contenteditable) – hffmr
Znam contenteditable, ale wolałbym to zrobić bez niego . Chciałbym zaprogramować funkcjonalność textarea lub div z contenteditable przeze mnie, o to właśnie chodzi ... – WcPc
co to jest "append()", gdy chcesz zmienić strukturę istniejącego html? Użyj contenteditable, ponieważ twoje umiejętności nie wystarczą do zrobienia tego, o co prosisz – charlietfl