【发布时间】:2009-09-03 10:26:15
【问题描述】:
可能重复:
jquery load issue
我正在使用 jQuery load() 函数将内容动态加载到 div 中。 在我调用 SyntaxHighlighter.all() 的回调中, 漂亮地打印刚刚加载到 div 中的 pre 块的语法。
问题是内容加载正常,但语法没有突出显示。 但是,当我在 div 中硬编码 pre 块时,因此不通过 jQUery load() 函数加载到 DOM 中,语法 get 会按应有的方式突出显示。
所以我猜测 SyntaxHighlighter.all() 仅适用于 html 源代码中的 pre 块,可以使用视图页面源代码查看,而不适用于 DOM 中的实际内容?
知道如何让它发挥作用吗?
用于加载和突出显示的 javascript:
<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>
内容 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>
使用 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>
亲切的问候
【问题讨论】:
-
alexgorbatchev.com/wiki - 语法高亮?另外,能否请您显示您用于加载元素然后突出显示的代码?
-
是的,就是这个。我使用您要求的信息编辑了原始问题。
标签: javascript jquery syntaxhighlighter