4


2

可能な重複: jquery load issue

私はjQueryのload()関数を使って動的にdivにコンテンツをロードしています。 コールバックでは、divにロードされたばかりのpreブロックの構文をきれいに表示するために、SyntaxHighlighter.all()を呼び出しています。

問題は、コンテンツが正しくロードされても、構文が強調表示されないことです。 しかし、私がdivの中のpreブロックをハードコードしているので、jQUery load()関数を介してDOMにロードしないと、構文は本来のように強調表示されます。

それで、SyntaxHighlighter.all()はhtmlソースにあるプレブロックでのみ動作し、それはビューページのソースを使って見ることができ、DOMの実際のコンテンツでは動作しないのでしょうか?

どのように私はそれを動作させることができますかという考えはありますか?

読み込みと強調表示を行うためのJavaScript:

$ .ajaxSetup({cache:false});

$(document).ready(function(){var tree = $( "#tree li"); var contentContainer = $( "#contentContainer"); var content = $( "#content");

SyntaxHighlighter.config.clipboardSwf = 'syntaxhighlighter_2.0.320 / scripts / clipboard.swf'; SyntaxHighlighter.all();

// Treeview $( "#tree")。treeview({persist: "location"、折りたたみ:true});

tree.click(function(){if($(this).hasClass( "file"))){tree.removeClass( "selected"); $(this).addClass( "selected"); content.load( "content / "this.id" .html "、function(){contentContainer.effect(" highlight "); SyntaxHighlighter.all();});}}); ;));

コンテンツのdiv:

/ **
 *  HelloWorldAppクラスは、次のようなアプリケーションを実装します。
 *  「Hello World!」と印刷するだけです。標準出力へ。 * / class HelloWorldApp {public static void main(String [] args){System.out.println( "Hello World!"); //文字列を表示します。 }}

jQuery.load()でロードされる外部ファイル

こんにちは世界

/ **
 *  HelloWorldAppクラスは、次のようなアプリケーションを実装します。
 *  「Hello World!」と印刷するだけです。標準出力へ。 * / class HelloWorldApp {public static void main(String [] args){System.out.println( "Hello World!"); //文字列を表示します。 }}

敬具

2 Answer


0


  1. 要素をcssで非表示にする(display:none)

  2. ページに要素を追加する

  3. SyntaxHighlighter.all()を呼び出します。

  4. 表示する準備ができたら、隠したCSSまたはクラスを削除します。