早上好,在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"]);
}' )
));
答案 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>