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

Detaillierte Erklärung der MySQL-Instanz mit aktiviertem SSD-Speicher

Detaillierte Erklärung der MySQL-Instanz mit akti...

Webdesign-Erfahrung: Effizientes Schreiben von Webcode

Ursprünglich sollte dieses siebte Kapitel eine aus...

Erste Schritte Tutorial für Anfänger⑧: Einfaches Erstellen einer Artikel-Site

In meinem letzten Beitrag habe ich darüber gesproc...

Verwendung von „align-content“ im Zeilenumbruchbereich des Flex-Layouts

1. Das in diesem Artikel implementierte Effektdia...

Details zum Vergleich der MySQL-Datenkomprimierungsleistung

Inhaltsverzeichnis 1. Testumgebung 1.1 Hardware u...

So implementieren Sie die Vue-Bindungsklasse und den Inline-Bindungsstil

Inhaltsverzeichnis Bindungsklasse Inline-Stile bi...

Implementierung von React Routing Guard (Routing-Interception)

React unterscheidet sich von Vue. Es implementier...

Implementierung der CSS3-Button-Randanimation

Erster Blick auf die Wirkung: html <a href=&qu...

So implementiert Webpack das Caching statischer Ressourcen

Inhaltsverzeichnis Einführung Unterscheiden Sie z...

Der Prozess der Installation von MySQL 8.0.26 auf CentOS7

1. Laden Sie zunächst die entsprechende Datenbank...

Tiefgreifendes Verständnis von Worker-Threads in Node.js

Inhaltsverzeichnis Überblick Die Geschichte der C...