редактировать: если вы используете MathJax, вы должны сказать MathJax пересканировать страницу для новых тегов латексных после вставки этого один за 1,5 секунды, см http://docs.mathjax.org/en/latest/typeset.html обычно вы можете уйти с просто работает MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
который для вас будет означать:
setTimeout(function(){
var parent = $('#panel');
var element = $('<div></div>');
var script = document.createElement('script');
script.setAttribute('type','math/tex');
script.textContent = 'e^{\\pi i} + 1 = 0';
element.append(script);
parent.append(element);
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
}, 1500);
оригинальный ответ: он работает здесь, в моем jsfiddle:
https://jsfiddle.net/aLe0jL3y/
Я подозреваю, что вы считаете, что после добавления этого тега сценария ваша библиотека латекса автоматически обнаружит, что она была вставлена, и проанализируйте ее или что-то в этом роде.
Я не знаю, какие библиотеки вы используете для латекса, но я предполагаю, что ваш код работает за пределы SetTimeout, потому что тогда это время вставленной перед тем библиотеки латексной сканирует страницу для математики/текс сценария теги, тогда как при использовании задержки на 1,5 секунды библиотека уже запустится, и ваш тег будет вставлен в, но вы его не увидите, потому что библиотека латекса уже работает по этому моменту времени, так что это не происходит разобрать его.
Я предлагаю вам следить за использованием библиотеки латекса после 1,5 секунды.
Я бы 'console.log' переменные с и без задержки, а затем сравнить их. Что-то о документе меняется ('# parent' исчезает?). –
@Chad Hedgcock Я сделал console.log, но единственное, что я мог видеть, это то, что он не добавляет элемент, все еще не знает причины! – Gacci
Можете ли вы показать свой HTML, по крайней мере, '# panel', в трех разных версиях? 1. Исходный источник ('right click -> view source'). 2. «Правой кнопкой мыши -> проверить элемент» с таймаутом. 3. «Правой кнопкой мыши -> проверить элемент» без таймаута. Я предполагаю, что другой скрипт меняет документ, но этот сценарий зависит от того, что вы делаете в этом скрипте, который вы вставили. Добавление таймаута переключает порядок выполнения, который препятствует тому, чтобы этот другой таинственный скрипт работал на '# panel', как и ожидалось. –