Question

  

Possible en double:    jquery problème de charge

Je contenu charger dynamiquement dans un div en utilisant la fonction charge jQuery (). Dans le rappel, je vous appelle SyntaxHighlighter.all (), à enluminer la syntaxe du bloc avant que vient de se charger dans la div.

Le problème est que le contenu est chargé OK, mais la syntaxe ne soit pas mis en évidence. Cependant, quand je hardcode le bloc avant dans la div, afin de ne pas charger dans dans le DOM via la fonction charge JQuery (), la syntaxe get mis en évidence comme il se doit.

Alors je devine que le SyntaxHighlighter.all () ne fonctionne que sur des blocs pré qui sont la source html, qui peut être consulté en utilisant la source de la page vue, et non sur le contenu réel dans les DOM?

Toute idée comment je peux le faire fonctionner?

Le javascript pour faire le chargement et soulignant:

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

la div contenu:

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

le fichier externe qui est chargé avec 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>

Cordialement

Était-ce utile?

La solution

Autres conseils

  1. l'élément caché avec css (display: none)
  2. Ajoutez l'élément à la page
  3. Appel SyntaxHighlighter.all ()
  4. Lorsque vous êtes prêt à le rendre visible, retirez-la ou classe css fait caché.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top