Frage

  

Mögliche Duplizieren:
   jquery Last Ausgabe

Ich lade Inhalt dynamisch in ein div der jQuery Last () -Funktion. In dem Rückruf bin ich Aufruf SyntaxHighlighter.all (), Feiner die Syntax des Pre-Block zu drucken, die wurde gerade in den div geladen.

Das Problem ist, dass der Inhalt OK geladen wird, aber die Syntax nicht hervorgehoben bekommt. Allerdings, wenn ich den Pre-Block in dem div hart codieren, so dass nicht in in den DOM über die JQuery load () Funktion laden, die Syntax get hervorgehoben, wie es sollte.

So vermute ich, dass der SyntaxHighlighter.all () nur auf Pre Blöcken arbeitet, die in der HTML-Quelle sind, die mit Blick Seite Quelle betrachtet werden können und nicht auf dem tatsächlichen Inhalt im DOM?

Jede Idee, wie kann ich es funktioniert?

Die Javascript, um die Belastung zu tun und hervorheben:

<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>

der Inhalt 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>

die externe Datei, die mit jQuery.load () geladen wird:

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>

Mit freundlichen Grüßen

War es hilfreich?

Lösung

Andere Tipps

  1. Machen Sie das Element versteckt mit CSS (display: none)
  2. Fügen Sie das Element auf der Seite
  3. Anruf SyntaxHighlighter.all ()
  4. Wenn Sie bereit sind, sie sichtbar zu machen, die CSS oder Klasse entfernen, die es versteckt gemacht.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top