使用jQuery.load加载后,如何使用MathJax格式化html?

cur*_*ous 5 html javascript jquery mathjax

我正在使用jQuery.load加载一个新页面.然而,内容正在以某种方式被奇怪地对待.在原始页面上,我有一些代码用MathJax格式化乳胶命令:

<script type="text/x-mathjax-config"> MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
Run Code Online (Sandbox Code Playgroud)

这适用于原始文件.但是,当我点击我的链接并在页面中插入更多HTML时:

<script>
  $(document).ready(function(){
    $("#link").click(function(){
      $("#myDiv").load("test.html");
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

现在,特殊字符不是由MathJax格式化的,只是按原样显示.

Dav*_*one 8

颂歌10cents是接近的,但你需要做的MathJax.Hub.Queue()呼叫从jQuery的回调load()使得直到进行排版的文件被加载.(就目前而言,它在请求文件加载后立即发生,即使该文件可能尚不可用).就像是

<script>
  $(document).ready(function(){
    $("#link").click(function(){
      $("#myDiv").load("test.html", function () {
        MathJax.Hub.Queue(["Typeset", MathJax.Hub, "myDiv"]);
      });
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

请参阅我在2013年1月在JMM上发表的演讲中的示例,了解更多详细信息以及其他情况的解决方案.