如何清除mathquillified可编辑元素的内容?

时间:2016-01-04 16:41:16

标签: jquery mathquill

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

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

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

有人能帮助我吗?

由于

3 个答案:

答案 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 = "";
}

此功能可以调用例如按钮单击事件。