2016-06-20 3 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'); 
}); 

Есть ли способ, чтобы сделать функцию триггера .css() после того, как MathML загружен, поэтому он может изменить его также? Мне кажется, что .css() происходит до этого, поэтому MathML не влияет на него. Я надеялся, что простое решение, как

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

Но это, похоже, не работает ...

+0

Mi элементы, кажется, не имеют какой-либо встроенный стиль, связанный с ними. Если вы запустите http://jsfiddle.net/njz7xaek/4/, вы получите что-то вроде 'els [i] .style' undefined. – apokryfos

ответ

2

Это не кажется, что <mi> элемент имеет какое-либо определение встроенного стиля, связанного с ним, например, если вы сделаете $("mi")[0].style, вы получите неопределенную ошибку.

Там очень грязный обходной путь для этого делать что-то вроде:

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

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

Это позволит создать «глобальный» стиль тег и добавьте его в голову.

Пример по адресу: http://jsfiddle.net/njz7xaek/5/ (требуется Firefox)

+0

Я понятия не имею, почему, но, похоже, работает, когда я делаю это с помощью MathJax. Я предполагаю, что это включает некоторые функции, но я новичок в этом, и я все еще участвую. Ваше решение выше моего понимания и не очень предпочтительного в том, что я делаю, но оно решает проблему, поэтому я соглашусь! –

+1

Реализация MathML Firefox имеет несколько недостающих базовых API, включая 'style'. WebKit страдает от других проблем. Чтобы ответить Фрэнку, MathJax не использует MathML, кроме внутреннего; он преобразует его в HTML + CSS или SVG. В обоих случаях «цвет» будет иметь желаемый эффект, но не все CSS выживут в процессе (хотя для этого должен быть использован собственный стилизм MathML). –

Смежные вопросы