最近、JQueryを使ってIntuitionistic/Constructiveロジック用のエディタを作ってアプリケーションでMathJaxを使用し始めました。私が直面している問題は、ページが読み込まれ、JQueryを使ってMathMLを注入すると、正しくレンダリングされないということです。ここでは、コードMathJaxとJQueryを使ってMathMLを挿入する
<math display="block" id="mathml-derivation">
<mrow class="beginning">
</mrow>
</math>
だこれは、私は問題が何であるかかどうか分からないのjavascript
setTimeout(function() {
console.log("Started");
var $frac = document.createElement('mfrac');
$frac.innerHTML = '<mrow id="children' + parseInt(1) + '" class="conclusion">\
<mrow>\
<mi>b</mi>\
</mrow>\
</mrow>\
<mrow class="assumption">\
<mo>' + "\u22A2" + '</mo>\
<mrow class="goal clickable">\
<mi>a</mi>\
</mrow>\
</mrow>';
$("#mathml-derivation").append($frac);
console.log($frac);
MathJax.Hub.Typeset("mathml-derivation");
}, 1000);
です。私がsetTimeout関数を持っているのは、ページがロードされてから少なくとも1秒間実行されることを確認するためです。すぐに、またはイベントを通してロードすると、MathMLは正しくレンダリングされません。私はStackOverflowのいくつかの他のポストに続き、それは '.Typeset'関数を使うと言われましたが、正しく動作していません。
最後に、私はChromeを使用して開発しており、互換性のためにMathJaxを使用しています。
完全な自己完結型の例を埋め込みスニペットとして共有できますか? –
@PeterKrautzbergerが返信してくれてありがとうございます。ここにはjsfiddle https://jsfiddle.net/rmqj0pwv/があります。setTimeoutを1000から0に変更すると、正常に動作します。それ以外の場合は動作しません。 – Ysrninja