我使用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元素中写过数学。第一个是静态声明的,第二个是在文档就绪函数中动态添加的
请帮我解决这个问题。
答案 0 :(得分:3)
您需要告诉MathJax查找使用Typeset()
方法完成的未处理数学,因为MathJax可能在调用Typeset()
时正在运行,您需要将其添加到队列中
$(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;
有关详细信息,请参阅this document
编辑:字符\
对字符串有特殊含义(它会转义以下字符)以避免此行为,确保使用\\
使其出现在最终字符串中