MathJax不能动态工作

时间:2016-03-25 17:19:34

标签: javascript html

我使用MathJax来显示数学方程式。它在静态编写的数学中运行良好。但不适合动态添加数学。

这是我的代码

<body>
    //Static  
        <div>
            <span>\(x = {-b \pm \sqrt{b^2-4ac} \over 2a}\)</span>                 
        </div> 
       //Dynamic 
        <div id="dynamic-pan">

        </div> 
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"></script>

        <script type="text/javascript">
            $(document).ready(function(){
                $('#dynamic-pan').empty();
                $('#dynamic-pan').append('<span>\(x = {-b \pm \sqrt{b^2-4ac} \over 2a}\)</span>');
            });
        </script>
</body>

我在两个span元素中写过数学。第一个是静态声明的,第二个是在文档就绪函数中动态添加的

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

您需要告诉MathJax查找使用Typeset()方法完成的未处理数学,因为MathJax可能在调用Typeset()时正在运行,您需要将其添加到队列中

&#13;
&#13;
$(document).ready(function() {
  var $el = $('#dynamic-pan')
  $el.empty()
  $el.append('<span>\\(x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}\\)</span>')
  MathJax.Hub.Queue(['Typeset', MathJax.Hub, $el[0]]);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML"></script>

//Static
<div>
  <span>\(x = {-b \pm \sqrt{b^2-4ac} \over 2a}\)</span> 
</div>
//Dynamic
<div id="dynamic-pan"></div>
&#13;
&#13;
&#13;

有关详细信息,请参阅this document

编辑:字符\对字符串有特殊含义(它会转义以下字符)以避免此行为,确保使用\\使其出现在最终字符串中