我正在使用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>
这适用于原始文件。但是,当我点击我的链接并在页面中插入更多HTML时:
<script>
$(document).ready(function(){
$("#link").click(function(){
$("#myDiv").load("test.html");
});
});
</script>
现在,特殊字符未由MathJax格式化,只是按原样显示。
答案 0 :(得分:8)
Carols 10cents已关闭,但您需要在jQuery MathJax.Hub.Queue()
的回调中执行load()
调用,以便在之后文件之前不执行排版已加载。 (就目前而言,它在请求文件加载后立即发生,即使该文件可能尚不可用)。像
<script>
$(document).ready(function(){
$("#link").click(function(){
$("#myDiv").load("test.html", function () {
MathJax.Hub.Queue(["Typeset", MathJax.Hub, "myDiv"]);
});
});
});
</script>
请参阅我在2013年1月在JMM上发表的演讲中的examples,了解更多详情和其他情况的解决方案。
答案 1 :(得分:2)
默认情况下,MathJax仅在页面加载时处理标记,因此您需要在将新内容加载到页面后告诉它再次处理。 The documentation for MathJax for modifying math on the page建议,如果您只想处理您添加的新内容,请执行以下操作:
<script>
$(document).ready(function(){
$("#link").click(function(){
$("#myDiv").load("test.html");
MathJax.Hub.Queue(["Typeset", MathJax.Hub, "myDiv"]);
});
});
</script>
根据您的应用程序,他们会提到其他一些方法,因此我建议您阅读该页面以找到适合您的最佳方式。