2016-01-04 54 views
0

我正在使用mathquill渲染一些乳胶。 我有一个可编辑的mathquill元素。如何清除mathquillified可编辑元素的内容?

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

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

有人可以帮我吗?

谢谢

+1

如果您发布,我们也许能够过的代码; )和“渲染一些乳胶”?这是一个错字吗? – AdamJeffers

回答

0

试图手动编辑DOM会破坏东西。除非你想清除页面上的每个编辑mathquill元素

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

变化$('.mathquill-editable')一个更具体的选择:使用MathQuill的API来代替,像这样。

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

您可以通过空格键(source

var space = $.Event('keydown'); 

space.bubbles = false; 
space.cancelable = false; 
space.charCode = 32; 
space.keyCode = 32; 
space.which = 32; 

请注意,该事件被应用到mathquill对内部假textarea的,不可见的元素本身创建一个自定义按键按下事件解决这个问题。

$('.mathquill-editable').find('textarea').trigger(space); 

此外,请确保选择器是特定于您要清除的元素。

最后一个问题 - 元素将不会被集中。不知道这是否是您的问题,但用户将不得不重新选择元素以继续编辑它。为了解决这个问题,必须应用.focus()方法:

$('.mathquill-editable').find('textarea').focus(); 
0

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

//let MQ = MathQuill.getInterface(MathQuill.getInterface.MAX); 
MQ.MathField($('.mathquill-editable')).latex("");