使用Mathquill时由span元素制成的MathField的Onblur事件

时间:2018-10-31 11:36:20

标签: javascript onblur mathquill

我在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>

0 个答案:

没有答案