0

我正在使用 mathquill 渲染一些乳胶。我有一个可编辑的 mathquill 元素。

我想知道如何以编程方式清除内容。

当我手动清除它(退格键)时,一切正常,但如果我使用 jQuery 从 DOM 中删除元素,似乎使用了一些缓存,因为我得到了与新值相关的旧值。

有人能帮助我吗 ?

谢谢

4

3 回答 3

1

尝试手动编辑 DOM 会破坏事情。请改用 MathQuill 的 API,如下所示:

$('.mathquill-editable').mathquill('latex', '');

$('.mathquill-editable')除非您想清除页面上每个可编辑的 mathquill 元素,否则请更改为更具体的选择器。

这将清除文本框的内容,并且不会破坏它的功能。但是,文本框将折叠成一个 6x6 像素的小正方形,除非用户单击它,否则它不会扩展为正常大小。当然不是功能失调,但也不是最漂亮的。

您可以通过为空格键(源)创建自定义键按下事件来解决此问题

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();
于 2016-01-10T20:30:14.067 回答
1

也许API改变了,我清除mathquill的内容使用代码如下

//let MQ = MathQuill.getInterface(MathQuill.getInterface.MAX);
MQ.MathField($('.mathquill-editable')).latex("");
于 2016-03-19T18:04:43.520 回答
0

您可以将 id 放入可编辑字段,如下所示:

<span id="main-input-solution">

之后,您可以像这样在 javascript 中创建一个函数:

function clearContent(){
  var mathFieldSpan1 = document.getElementById('main-input-solution');
  mathFieldSpan1.innerHTML = "";
}

您可以在按钮单击事件中调用此函数。

于 2019-02-01T15:50:50.777 回答