Mathjax 在 ajax 调用后不排版方程

Mathjax doesn't typeset equations after ajax call

我正在使用 MathJax 在我的网页上排版方程式。第一次加载网页时一切正常 fine.On 单击 "NEXT" 按钮,div 内的等式发生变化(ajax 调用),但它显示为 'raw TEX'即 Mathjax 没有第二次排版。相关代码如下:

标记和脚本

<div class="div_body" id="ques_dashboard">
  <p>When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$</p>
</div>                          
<div class="div_footer">
   <a href="#" class="button ryt_btn" id="answer_submit">SUBMIT</a>
   <a href="#" class="button ryt_btn" id="next_q">NEXT</a>
   <a href="#" class="button ryt_btn" id="skip_q">SKIP</a>
</div>
<script>
   $(document).ready(function(){
     $('#next_q').click(function(){
        $("#next_q").hide();
        $('#answer_submit').show();
        $("#skip_q").show();        

        $.ajax({
            type: 'POST',  
            url: '../ajax/next_question.php',                
            //data:{queslist:queslist, current_qorder:current_qorder},                
            success: function(msg){                        
                $('#ques_dashboard').html(msg);
          MathJax.Hub.Queue(["Typeset",MathJax.Hub,'ques_dashboard']);
            }
        });           
        return false;
     }); 
   });
</script>

PHP 调用者 AJAX

<?php?>
<p> If \(a, b, c\) are in HP, then \(\frac {1}{a}, \frac {1}{b}, \frac {1}{c}\) are in AP</p>

我在这里展示了简化的代码,其中包括很多 php 和 mysql。我能够成功显示 "next question" 但无法使用 Mathjax 进行排版。我试过使用 MathJax.Hub.Queue 函数。

我是 jquery 和 ajax 的新手。请帮忙。

问题是您需要转义 '\' 个字符,否则它们会被 jquery 和底层 javascript 解释。所以返回的字符串应该是这样的:

<?php?>
<p> If \(a, b, c\) are in HP, then \(\frac {1}{a}, \frac {1}{b}, \frac {1}{c}\) are in AP</p>

我在 Julien 的帮助下找到了问题所在。下面给出的代码片段在 ajax 调用后干扰了排版。(此队列函数隐藏文本直到排版完成。)

MathJax.Hub.Queue(function () { document.getElementById("hide_page").style.visibility = "";});

评论这部分解决了问题。

如果我找到同时使用 ajax 和 "hide until typeset" 功能的方法,将更新答案。