Wenn div auf contentEditable=true gesetzt ist, kann der Cursor nach dem Zurücksetzen seines Inhalts nicht positioniert werden

Wenn div auf contentEditable=true gesetzt ist, kann der Cursor nach dem Zurücksetzen seines Inhalts nicht positioniert werden

Ich habe kürzlich an einer Kommentarfunktion gearbeitet, die die Möglichkeit zum Kommentieren von Emoticons erforderte. Daher war die Eigenschaft contentEditable das Erste, was ich berücksichtigen musste. Dabei trat ein Problem auf ...

Zunächst eine Anmerkung zum Landrat:

img

Wenn der Eingabeinhalt das Limit überschreitet, wird der Inhalt gelöscht, nachdem die Benutzereingabe das Limit überschritten hat.

Das ist einfach... Aber nach dem Löschen des Inhalts wanderte der Cursor tatsächlich nach vorne, was Kopfschmerzen bereitet.

Nach verschiedenen Suchen habe ich eine Lösung gefunden. Hier ist ohne weitere Umschweife der Code!

var _div = document.querySelector('.discuss_area');
var Bereich = Dokument.createRange();

Bereich.selectNodeContents(_div);
Bereich.Collapse(false);

var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(Bereich);

Alle verwenden native Ereignisse, sodass jQuery Objekte nicht verwendet werden können.

In diesem Artikel geht es um die Lösung des Problems, dass, wenn ein Div auf contentEditable=true gesetzt ist, der Cursor nach dem Zurücksetzen seines Inhalts nicht richtig positioniert werden kann. Dies ist das Ende des Artikels. Weitere relevante Inhalte zum Festlegen von „div contentEditable=true“ finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Allgemeine Benennungsregeln für CSS-Klassen und IDs

>>:  Detaillierte Erklärung der CSS-Hintergrund- und Rahmen-Tag-Beispiele

Artikel empfehlen

Eine umfassende Analyse der Möglichkeiten von Nginx

Vorwort Dieser Artikel konzentriert sich nur dara...

Tutorial zu HTML-Tabellen-Tags (23): Zeilenrahmen-Farbattribut BORDERCOLORDARK

In Zeilen können dunkle Rahmenfarben individuell ...

Sequenzimplementierungsmethode basierend auf MySQL

Das Team ersetzte den neuen Rahmen. Alle neuen Un...

Detaillierte grafische Erläuterung der MySql5.7.18-Zeichensatzkonfiguration

Hintergrund: Vor langer Zeit (2017.6.5, der Artik...

Analyse des Prinzips des Rabbitmq Heartbea-Herzschlagerkennungsmechanismus

Vorwort Wenn Sie RabbitMQ verwenden und für einen...

Detaillierte Erklärung der KeepAlive-Anwendungsfälle in Vue

Bei der Entwicklung ist es häufig erforderlich, d...

Natives JS zum Implementieren der Seitenleiste zum Teilen

Dieser Artikel zeigt eine mit nativem JS implemen...

Details zum JavaScript-Prototyp und zur Prototypkette

Inhaltsverzeichnis 1. Prototyp (expliziter Protot...

Teilen Sie einen auf Ace basierenden Markdown-Editor

Ich denke, Editoren lassen sich in zwei Kategorie...

Tipps zum MySQL-Abfragecache

Inhaltsverzeichnis Vorwort Einführung in QueryCac...

Detaillierte Erklärung der Lösung für das Nginx-Panikproblem

In Bezug auf das Nginx-Panikproblem müssen wir zu...

Vue + ElementUI implementiert Paging-Funktion - MySQL-Daten

Inhaltsverzeichnis 1. Problem 2. Lösung 2.1 Pagin...