2014-12-02 4 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와 사업부 및 none과의 display 세트로 페이지가로드가 있습니다. 위의 코드는 MathJax가 렌더링을 마쳤을 때 div를 페이드 인 (fade in)시킵니다.

이 코드를 here에서 복사했습니다.

완벽하게 작동하지만 내 페이지의 요소를 검사 할 때 콘솔에 다음 오류가 표시됩니다.

http://www.mywebsite.com/@Url.Action(%22ActionResultMethod%22, 
Failed to load resource: the server responded with a status of 404 (Not Found) 

참고 : 실제 웹 사이트 URL을 mywebsite.com으로 바 꾸었습니다.

아무도 왜 이런 일이 일어나고 어떻게 해결할 수 있는지 말해 줄 수 있습니까? 다시 말하면, 코드는 완벽하게 작동하는 것 같고 어떤 문제도 감지하지 못합니다. 나는이 오류를 보았다.

아래의 Fiddle에서 실제로이를 볼 수 있습니다. 페이지의 요소를 검사하면 콘솔에 동일한 오류가 표시됩니다.


편집 : 그것은 일이 문제를 일으키는 것으로 보인다 나는 또한, 사람이 있지만, @의 Url.Action를 사용하지 않고 MathJax이 같은 작업을 수행 할 수있는 방법이 있는지 알고 관심을 가질 것입니다.

답변

0

주위를 연주 한 후 나는 복사 한 코드가 좋음을 알았지 만, @ Url.Action 부분은 내가하려고하는 것에 불필요합니다.

특히, 방금 MathJax.Hub.Queue의 모든 부분과 대괄호 안의 부분을 삭제했습니다. 그래서 코드는 이제 그냥 :

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

이것은 단지뿐만 아니라 작동하는 것, 그리고 내가 콘솔에서 오류 메시지가 없습니다. Fiddle을 참조하십시오.

이 모든 것이 jQuery를 사용하여 MathJax가 렌더링 될 때까지 객체를 표시하는 것을 지연시키는 꽤 좋은 솔루션 인 것 같습니다.