【问题标题】:SyntaxHighlighter.all() doesn't work on DOM level? [duplicate]SyntaxHighlighter.all() 在 DOM 级别上不起作用? [复制]
【发布时间】: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>

亲切的问候

【问题讨论】:

标签: javascript jquery syntaxhighlighter


【解决方案1】:

解决方案:jquery load issue

【讨论】:

    【解决方案2】:
    1. 用 css 隐藏元素 (display:none)
    2. 将元素添加到页面
    3. 调用 SyntaxHighlighter.all()
    4. 当您准备好使其可见时,请移除使其隐藏的 css 或类。

    【讨论】:

    • 对不起,没有影响
    猜你喜欢
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多