javascript - 在 javascript 的更新序列中使用 mathjax

标签 javascript html updates mathjax

我的程序中有四个动态变量,

xzero, xone, xtwo, xthree

代表三次函数的系数。我想在 HTML 中以下列格式显示实际方程式:

xthree*x^3+xtwo*x^2+xone*x+xzero=f(x)

但它需要能够随变量更新,所以我原本以为我会做一个

document.getElementById("demo").innerHTML = (new equation);

但在我看来,要么 mathJax 在 javascript 中不起作用,要么我没有做对。我能想到的唯一替代解决方案是为每个变量制作四个单独的 div 标签,并更新它们,但这似乎不必要地笨拙。我能否从任何一种方式获得一些关于如何解决此问题的指示?

最佳答案

MathJax 在加载文档时自动渲染文档,但稍后不会。尝试明确请求重新渲染:

document.getElementById("demo").innerHTML = "...";
MathJax.Hub.Queue(["Typeset", MathJax.Hub, 'demo']);

编辑:经过一番思考,我认为您可以在一个元素中请求渲染,将其隐藏,然后将完成的标记复制到另一个元素中,以防止闪烁:

var mathDiv = document.getElementById('math');
var displayDiv = document.getElementById('display');

MathJax.Hub.Queue(["Typeset",MathJax.Hub,"math"]);
MathJax.Hub.Queue(function() {
  var math = MathJax.Hub.getAllJax("MathDiv")[0];
  var i = 1;
  setInterval(function() {
    MathJax.Hub.Queue(["Text", math, "\\int_0^{" + i + "} x dx"]);
    MathJax.Hub.Queue(function() {
      displayDiv.innerHTML = mathDiv.innerHTML;
    });
    i++;
  }, 1000);
});
#math {
  display: none
}
<script type="text/javascript"
  src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<div id="math">$$$$</div>
<div id="display"></div>

关于javascript - 在 javascript 的更新序列中使用 mathjax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32239378/

相关文章:

javascript - Firebase 云存储 : how to "update all"/"delete some" docs in a collection?

javascript - 如何用 jQuery 中的函数替换重复的代码块

javascript - 在javascript中使用HTML保留缩进格式

python - 如何在包更新之间保留数据文件?

C#/WMI : How to remotely check if Windows has updates ready to be installed?

javascript - 在图像下方垂直和水平居中标题

javascript - Spring 不执行回调的 $.getJSON

javascript - AngularJS - 在更新字段后在 ng-repeat 中查找对象

javascript - 使用 jQuery 在动态生成的行上设置选定值

ios - 更新 Uitableview 单元格按钮标题