我在https://js.do/sun21170/255369处有一些相当简单的代码,其中使用mathquill库将id为math-field
的span元素转换为MathField。
此代码按预期工作,因此,当用户键入x-3y = 20
或其他数学表达式/公式时,输入的文本将由mathquill库自动排版到Math中。
问题
在mathfield cofig中是否有一个处理程序,当用户将焦点移到此代码中的MathField之外(即,焦点在ID为math-field
的跨度之外时)会触发?我已经在代码中尝试了各种处理程序,但是只有当我使用箭头键向上或向下移动光标时,它们才会触发。当用户使用鼠标在MathField外部单击时,我想做一些处理。
下面也粘贴了与上面的链接相同的演示代码。
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathquill/0.10.1/mathquill.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/mathquill/0.10.1/mathquill.css" />
<h1>Mathquill sample 1</h1>
<p>Type math here: <span id="math-field"></span>
</p>
<p>LaTeX of what you typed: <span id="latex"></span>
</p>
<script>
var mathFieldSpan = document.getElementById('math-field');
var latexSpan = document.getElementById('latex');
var MQ = MathQuill.getInterface(2); // for backcompat
var mathField = MQ.MathField(mathFieldSpan, {
spaceBehavesLikeTab: true, // configurable
handlers: {
edit: function() { // useful event handlers
latexSpan.textContent = mathField.latex(); // simple API
},
upOutOf: function(mathField) {
alert("upOutOf");
},
moveOutOf: function(dir, mathField) {
alert("moveOutOf");
},
selectOutOf: function(direction, mathField) {
alert("selectOutOf");
},
downOutOf: function(mathField) {
alert("downOutOf");
}
}
});
mathFieldSpan.onblur = function() {
alert("onblur");
}
</script>
<style>
#math-field {
min-width: 400px;
}
</style>