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