Pergunta

Possível duplicata:
Problema de carga do jQuery

Estou carregando conteúdo dinamicamente em um div usando a função jQuery load (). No retorno de chamada, eu chamo de syntaxhighLighter.all (), para imprimir a sintaxe do bloco que acabou de ser carregado na div.

O problema é que o conteúdo é carregado ok, mas a sintaxe não é destacada. No entanto, quando eu codificamos o bloco pré na div, não carregando no DOM através da função JQuery Carco (), a sintaxe Get é destacada como deveria.

Então, acho que o SyntaxHighLighter.All () funciona apenas em blocos pré, que estão na fonte HTML, que podem ser visualizados usando a origem da página de exibição e não no conteúdo real no DOM?

Alguma ideia de como posso fazer funcionar?

O JavaScript para fazer o carregamento e o destaque:

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

o conteúdo 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>

O arquivo externo que é carregado com 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>

Atenciosamente

Foi útil?

Solução

Outras dicas

  1. Torne o elemento escondido com CSS (exibição: nenhum)
  2. Adicione o elemento à página
  3. Ligue para SyntaxHighLighter.all ()
  4. Quando estiver pronto para torná -lo visível, remova o CSS ou a classe que o deixou oculto.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top