Domanda

  

Eventuali duplicati:
   jquery

Sto caricando i contenuti in modo dinamico in un div utilizzando la funzione di caricamento jQuery (). Nella richiamata Sto chiamando SyntaxHighlighter.all (), per stampare abbastanza la sintassi del blocco pre che appena caricato nel div.

Il problema è che il contenuto viene caricato OK, ma la sintassi non viene evidenziato. Tuttavia, quando il blocco hardcode pre nel div, quindi non carico in nel DOM tramite la funzione di caricamento Jquery (), la sintassi ottenere è evidenziato come dovrebbe.

Quindi immagino che lo SyntaxHighlighter.all () funziona solo su blocchi pre che sono nel codice HTML, che possono essere visualizzati utilizzando fonte visualizzazione di una pagina, e non sul contenuto effettivo nel DOM?

Qualsiasi idea di come posso farlo funzionare?

Il javascript per fare il carico e mettendo in evidenza:

<script type="text/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",
                collapsed: 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();
                    });
                }
            });
        });
    </script>

il contenuto div:

<div id="content">
                <pre class="brush: java;">
/**
 * The HelloWorldApp class implements an application that
 * simply prints "Hello World!" to standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}
                </pre>
            </div>

il file esterno che viene caricato con jQuery.load ():

Hello World

<pre class="brush: java;">
/**
 * The HelloWorldApp class implements an application that
 * simply prints "Hello World!" to standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}
</pre>

Cordiali saluti

È stato utile?

Soluzione

Altri suggerimenti

  1. Fare l'elemento nascosto con i CSS (display: none)
  2. Aggiungi l'elemento alla pagina
  3. Chiama SyntaxHighlighter.all ()
  4. Quando si è pronti per renderlo visibile, rimuovere il CSS o classe che ha reso nascosto.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top