2014-12-02 98 views
1

我的網站有大量的MathJax,我使用下面的代碼來防止某些對象在頁面上可見,直到所有的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

玩過之後,我意識到我複製的代碼是好的,但@ Url.Action部分對於我所要做的事情來說是不必要的。

特別是,我剛剛刪除了MathJax.Hub.Queue以及括號內的部分。所以代碼現在只是:

MathJax.Hub.Queue(
    function() { 
    $("#myDiv").fadeIn(300); 
    } 
); 

這似乎是正常工作,我沒有控制檯中的錯誤消息。見Fiddle

總而言之,這似乎是一個非常好的解決方案,使用jQuery來延遲顯示對象,直到MathJax渲染完畢。