如何在ajax中使用MAthjax

时间:2014-06-11 02:42:29

标签: php jquery ajax math mathjax

早上好,在ajax数据插入之后如何用mathjax渲染div?我已经阅读了一些帖子但找不到:(。它只工作一次。第二次和第三次不工作。我也尝试过放

   MathJax.Hub.Queue(["Typeset",MathJax.Hub, "test"]);
在ajax插入之前和之后

$this->widget('bootstrap.widgets.TbButton', array(
'htmlOptions'   => array('id'=> 'start'),
'buttonType'=>'ajaxButton',
'type'=>'primary',
'label'=>'Start',
'url'=>CController::createUrl('site/next'),
'ajaxOptions'=>array(
    'type'=>'post',
    'data'=>array('row'=>$row),
    'success'=>'function(data){
           $("#test").html(data);
                MathJax.Hub.Queue(["Typeset",MathJax.Hub, "test"]);             
    }'  )

));

1 个答案:

答案 0 :(得分:2)

我不认为它是一个特定的MathJax问题。以下代码创建一行输入表单并动态获取其中的mathml代码并使用mathjax呈现它。这适用于重复输入,因此MathJax.Hub.Queue(["Typeset",...)部分工作正常。尝试在ajax代码中添加alert(data)以检查是否从ajax获得了正确的输入。

<!doctype html>
<html>
<head>
<title>Creating mathml from expressions</title>

<script src="../MathJax/MathJax.js">
  MathJax.Hub.Config({
    extensions: ["mml2jax.js"],
    jax: ["input/MathML","output/HTML-CSS"]
  });
</script>

<script type="text/javascript">
<!--
function render()
{
  var res = document.getElementById('equation').value;
  alert(res);
  var target = document.getElementById('outputDiv');
  target.innerHTML=res;
  MathJax.Hub.Queue(["Typeset",MathJax.Hub,'outputDiv']);
}
// -->
</script>
</head>
<body>
<h1>MathML to MathJax<h1>

<form>
<input type="text" id="equation" size="100" value="<math><msup><mi>x</mi><mn>2</mn>    </msup></math>"/> 
<input type="button" value="Render" onClick="render();"/>
</form>

<div id="outputDiv" style="border:1px; font-size:x-large;">

</div>
</body>
</html>