使用 MathJax 向 DOM 添加元素
Using MathJax to add element to the DOM?
我正在尝试动态创建一个元素,然后对其进行一些处理。我试图在新创建的元素上使用MathJax,但我无法在其上拉动MathJax.Hub.getAllJax。
我在控制台中键入此内容以进行测试:(MathOutput1 在 HTML 中定义)
MathJax.HTML.addElement(document.body, "div", {id: "blah"}, ['` `']);
<div id="blah">` `</div>
MathJax.Hub.getAllJax("blah");
[]
MathJax.Hub.getAllJax("MathOutput1")
[Object]
有没有办法动态创建一个可以对其执行操作的元素?
我确实确认了div 元素 blah 已添加到 dom 中(至少根据 chrome)""
谢谢:)
这里的问题是 MathJax 是异步运行的,并且您尝试在 MathJax.Hub.getAllJax()
例程完全完成之前访问新元素。
要解决此问题,您可以将对Hub
的调用放在CC_4的回调队列上的回调函数中:
function showBlahElement () {
console.log(MathJax.Hub.getAllJax("blah"));
}
MathJax.HTML.addElement(document.body, "div", {id: "blah"}, ['$$a=b$$']);
MathJax.Hub.Queue(showBlahElement);
或者,您可以注册一个信号侦听器,每当发生某个事件时(在这种情况下,每当新的数学被排版时),它就会被触发:
MathJax.Hub.Register.MessageHook("New Math", function (message) {
console.log(MathJax.Hub.getAllJax("blah"));
});
MathJax.HTML.addElement(document.body, "div", {id: "blah"}, ['$$a=b$$']);
有关更多信息,请参阅 API 文档。
相关文章:
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 如何使用jquery遍历具有动态添加元素的数组
- jQuery appendTo 替换元素而不是添加元素,如果正在添加的元素预先存在于列表中
- 如何使用jquery添加元素
- 动态添加元素上的 HammerJS
- CSS没有'使用javascript向页面动态添加元素时无法工作
- 使用Javascript在DOM元素中添加元素
- 在添加元素时激发JS事件
- 什么's是在IE8+中添加元素的最有效方法
- d3.js在添加元素时协调
- 使用路由器链接动态添加元素
- 动态添加元素
- 在页面内容完全加载后,使用jQuery在DOM中添加元素
- j查询绑定单击不添加元素
- 在循环 jQuery 上添加元素
- 从一个页面调用 javascript 函数以在第二个页面上添加元素
- 页面加载后向<正文>添加元素时出现问题
- 动态添加元素时刷新 HTML
- 动态添加元素时不触发 JQuery 事件
- 如何使用 JavaScript 获取动态添加元素的宽度