2015-01-14 107 views
2

我有一個簡單的文本網站,混合了只有頭部可見的部分。點擊標題展開該部分。這個頁面的所有部分都可以包含我想用MathJax很好地排版的數學,但這些部分可能很長並且包含很多數學。 我想推遲每個部分的處理,直到點擊相應的標題。這可能嗎?延遲MathJax處理特定元素

我知道MathJax具有TypeSet函數,我可以調用該部分顯示時,所以動態排版數學不是問題。我還發現了elements配置選項,但這與我想要的相反:它只允許您處理某些元素,而我想排除某些元素。

示例頁面:http://jsfiddle.net/pnbjh5tg/

回答

1

我想出了一個辦法做到這一點。基本上,我忽略了tex2jax pre-processorignoreClass選項。將類tex2jax_ignore添加到所有部分可確保在頁面加載時不處理它們。下面的JavaScript,然後處理他們被點擊的標題時:

var section = $(this).parent().children('.section-container'); 
section.removeClass("tex2jax_ignore"); 
MathJax.Hub.Queue(["Typeset",MathJax.Hub,section.get(0)]); 

結果可以在this jsFiddle可見。