2016-06-20 6 views
1

何らかの理由でMathMLが.css()更新を取得していないため、MathMLがロードされたときにこれを更新できるようにする方法があるかどうかは疑問でした。MathMLがロードされたときに更新する

http://jsfiddle.net/njz7xaek/

コードは、問題を示す図です。 MathMLコードは更新されずに赤色のままですが、テキストサンプルと同様に青色になります。

HTML

<span class="col1">text</span> 
<br /> 
<math> 
    <mi class="col1">a</mi> 
    <mi>x</mi> 
    <mo>+</mo> 
    <mi class="col1">b</mi> 
</math> 

CSS

.col1 { 
    color:red; 
} 

JS

$(document).ready(function() { 
    $('.col1').css('color', 'blue'); 
}); 

ロードされたMathMLの後の.css()関数、トリガーを作るための方法があることができるので、それも変更しますか?この前に.css()が発生するので、MathMLはその影響を受けません。例えば、<mi>要素は、それに関連するすべてのインラインスタイル定義を持っていることは思えない

+0

MI素子は、それらに関連するすべてのインラインスタイルを持っていないようです。 http://jsfiddle.net/njz7xaek/4/を実行した場合、 'els [i] .style'は未定義です。 – apokryfos

答えて

2

...私は

$(MathML).ready(function() { 
    $('.col1').css('color', 'blue'); 
}); 

のような単純な解決策を期待していた。しかし、これは動作していないようでした$("mi")[0].styleを実行すると、未定義のエラーが発生します。

var nStyle = $('<style>.col1 { color: blue; }</style>'); 

$("html > head").append(nStyle); 

これは「グローバル」スタイルタグを作成して、頭に追加します:

ような何かを行うことによって、このための厄介な回避策があります。で

例:http://jsfiddle.net/njz7xaek/5/(Firefoxのを必要とする)

+0

私は理由は分かりませんが、MathJaxでレンダリングするとうまくいくようです。私はそれがいくつかの機能を含むと思っていますが、私はこれで初心者であり、私はまだ学んでいます。あなたの解決策は私が理解しているものではなく、私がやっているところではそれほど望ましいものではありませんが、問題を解決して受け入れます! –

+1

FirefoxのMathML実装には、 'style'を含むいくつかの欠落した基本APIがあります。 WebKitには他の問題があります。フランクに答えるために、MathJaxは内部的にを除いてMathMLを使用しません。 HTML + CSSまたはSVGに変換します。どちらの場合も、 'color'は望みの効果を持ちますが、すべてのCSSがそのプロセスを生き残るわけではありません(MathML自身のスタイリングprimitiexはすべてそれを作るはずです)。 –

関連する問題