2016-03-25 12 views
0

Ich habe MathJax für die Anzeige von mathematischen Gleichungen verwendet. Es funktioniert gut in statisch geschriebenen Mathematik. Aber nicht für dynamisch hinzugefügte Mathematik.MathJax funktioniert nicht Dynamisch

Hier ist mein Code

<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> 

I Mathematik in zwei span-Element geschrieben. Die erste wird statisch deklariert und die zweite dynamisch in der Funktion "Dokument bereit" hinzugefügt.

Bitte helfen Sie mir, das Problem zu lösen.

Antwort

2

Sie müssen Mathjax sagen, für nicht verarbeitete Mathematik suchen, die mit dem Typeset() Verfahren durchgeführt wird, da Mathjax kann zum Zeitpunkt des Anrufs Typeset() Sie es in seine Warteschlange

$(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]]); 
 
});
<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>
hinzufügen müssen in Betrieb sein

siehe this document für weitere Informationen

Edit: das Zeichen \ eine besondere meanin hat g auf Strings (es entkommt das folgende Zeichen), um dieses Verhalten zu vermeiden, stellen Sie sicher, dass Sie \\ verwenden, damit es in der letzten Zeichenfolge

+0

angezeigt wird. Es funktioniert nicht .. – Madhu

+0

es funktioniert, einige Zeichen Ihrer Zeichenfolge werden entgangen, ich ' habe meine Antwort mit dem Ergebnis aktualisiert –