mathquill を使用してラテックスをレンダリングしています。編集可能な mathquill 要素があります。
プログラムでコンテンツをクリアする方法を知りたいです。
手動でクリアすると (バックスペース)、すべて正常に動作しますが、jQuery を使用して DOM から要素を削除すると、古い値が新しい値と連結されるため、キャッシュが使用されているように見えます。
誰か助けてくれませんか?
ありがとう
DOM を手動で編集しようとすると、問題が発生します。代わりに、次のように MathQuill の API を使用します。
$('.mathquill-editable').mathquill('latex', '');
$('.mathquill-editable')
ページ上の編集可能な mathquill 要素をすべてクリアしたい場合を除き、より具体的なセレクターに変更します。
これにより、テキストボックスの内容がクリアされ、機能が損なわれることはありません。ただし、テキストボックスは 6x6 ピクセルの小さな正方形に折りたたまれ、ユーザーがクリックしない限り、通常のサイズには拡大されません。確かに機能不全ではありませんが、最も美しいわけでもありません。
これは、スペース キー ( source )のカスタム キー ダウン イベントを作成することで修正できます。
var space = $.Event('keydown');
space.bubbles = false;
space.cancelable = false;
space.charCode = 32;
space.keyCode = 32;
space.which = 32;
イベントは、可視要素自体ではなく、内部の mathquill の偽のテキスト領域に適用されることに注意してください。
$('.mathquill-editable').find('textarea').trigger(space);
繰り返しますが、セレクターがクリアしたい要素に固有のものであることを確認してください。
最後の問題 - 要素はフォーカスされません。これが問題かどうかはわかりませんが、編集を続けるには、ユーザーが要素を再選択する必要があります。.focus()
これを修正するには、次のメソッドを適用する必要があります。
$('.mathquill-editable').find('textarea').focus();
APIが変更された可能性があります。mathquillの内容をクリアするには、次のコードを使用します
//let MQ = MathQuill.getInterface(MathQuill.getInterface.MAX);
MQ.MathField($('.mathquill-editable')).latex("");