我正在尝试使用初始文本“xyz”将“abc”覆盖到 MathQuill 的 TextField 中
var MQ = MathQuill.getInterface(2);
var mySpan = document.getElementById('A');
var textField = MQ.TextField(mySpan);
textField.latex('abc');
<link href="https://cdnjs.cloudflare.com/ajax/libs/mathquill/0.10.1-a/mathquill.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathquill/0.10.1-a/mathquill.min.js"></script>
<span id="A">xyz</span>
我期待文本字段中出现“abc”。
但是,当我加载页面时,我得到“xabc”。
然后我将光标放在“x”的右侧,然后按退格键,但无法删除第一个节点“x”。
然后我单击“x”并收到以下错误:
Uncaught Error: prayer failed: nodeId is the id of some Node that exists
at s (mathquill.min.js:10:419)
at t.seek (mathquill.min.js:10:27378)
at HTMLSpanElement.<anonymous> (mathquill.min.js:10:27058)
at HTMLSpanElement.dispatch (jquery.min.js:2:40035)
at v.handle (jquery.min.js:2:38006)
我认为这意味着“x”已从内部节点映射中删除,但并未从 DOM 中删除。
上面的例子使用MathQuill v0.10.1-a,我尝试了一些旧版本,但仍然看到这个错误。
如果我们在空的首字母
上调用
.latex()
两次,然后单击“x”,我仍然会看到此错误。
var MQ = MathQuill.getInterface(2);
var mySpan = document.getElementById('A');
var textField = MQ.TextField(mySpan);
textField.latex('xyz');
textField.latex('abc');
<link href="https://cdnjs.cloudflare.com/ajax/libs/mathquill/0.10.1-a/mathquill.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathquill/0.10.1-a/mathquill.min.js"></script>
<span id="A"></span>
root.jQ.children().slice(1).remove();
我不知道为什么
.slice(1)
在那里。
如果
.slice(1)
被删除,我会得到预期的行为。