我的网站有大量的MathJax,我使用以下代码来阻止某些对象在页面上可见,直到所有MathJax公式都已呈现。
$("#myDiv").load('@Url.Action("ActionResultMethod", "ControllerName",{controller parameters})', function () {
MathJax.Hub.Queue(
["Typeset",MathJax.Hub,"myDiv"],
function () {
$("#myDiv").fadeIn(300);
}
);
});
特别是,我有一个ID为myDiv
的div,并且页面加载的display
设置为none
。当MathJax完成渲染时,上面的代码使div淡入。
我从here复制了此代码。
它工作正常,但现在当我检查页面上的元素时,我在控制台中看到以下错误。
http://www.mywebsite.com/@Url.Action(%22ActionResultMethod%22,
Failed to load resource: the server responded with a status of 404 (Not Found)
注意:我已使用mywebsite.com
替换了我的实际网站网址。
任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题?重申一下,代码似乎工作得很好,我没有发现任何问题。我只看到这个错误。
您可以在以下Fiddle中查看此操作。如果您检查页面上的元素,您将在控制台中看到相同的错误。
编辑:我也有兴趣知道是否有人有办法用MathJax完成同样的任务,但没有使用@ Url.Action,因为它似乎是导致问题的原因。
答案 0 :(得分:0)
在玩完之后我意识到我复制的代码很好,但@ Url.Action部分对于我想要做的事情是不必要的。
特别是,我刚刚删除了MathJax.Hub.Queue
周围的所有内容以及括号中的部分内容。所以代码现在只是:
MathJax.Hub.Queue(
function () {
$("#myDiv").fadeIn(300);
}
);
这似乎也正常工作,我在控制台中没有错误消息。见Fiddle。
总而言之,这似乎是一个非常好的解决方案,使用jQuery延迟显示一个对象,直到MathJax渲染完毕。