我正在使用 mathquill 渲染一些乳胶。我有一个可编辑的 mathquill 元素。
我想知道如何以编程方式清除内容。
当我手动清除它(退格键)时,一切正常,但如果我使用 jQuery 从 DOM 中删除元素,似乎使用了一些缓存,因为我得到了与新值相关的旧值。
有人能帮助我吗 ?
谢谢
尝试手动编辑 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();
也许API改变了,我清除mathquill的内容使用代码如下
//let MQ = MathQuill.getInterface(MathQuill.getInterface.MAX);
MQ.MathField($('.mathquill-editable')).latex("");
您可以将 id 放入可编辑字段,如下所示:
<span id="main-input-solution">
之后,您可以像这样在 javascript 中创建一个函数:
function clearContent(){
var mathFieldSpan1 = document.getElementById('main-input-solution');
mathFieldSpan1.innerHTML = "";
}
您可以在按钮单击事件中调用此函数。