SyntaxHighLighter.all () não funciona no nível DOM? [duplicado
-
21-09-2019 - |
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
Solução
solução: Problema de carga do jQuery
Outras dicas
- Torne o elemento escondido com CSS (exibição: nenhum)
- Adicione o elemento à página
- Ligue para SyntaxHighLighter.all ()
- Quando estiver pronto para torná -lo visível, remova o CSS ou a classe que o deixou oculto.