سؤال

تكرار ممكن:
قضية تحميل jQuery

أقوم بتحميل المحتوى ديناميكيًا في DIV باستخدام وظيفة jQuery Load (). في رد الاتصال ، أدعو SyntaxHighlighter.all () ، لطباعة بناء جملة الكتلة المسبقة التي تم تحميلها للتو في Div.

المشكلة هي أنه يتم تحميل المحتوى موافق ، لكن بناء الجملة لا يتم تسليط الضوء عليه. ومع ذلك ، عندما أقوم بترميز الكتلة المسبقة في DIV ، لذلك لا يتم تحميلها في DOM عبر وظيفة jQuery Load () ، يتم تسليط الضوء على بناء الجملة كما ينبغي.

لذلك أظن أن SyntaxHighlighter.all () يعمل فقط على الكتل المسبقة الموجودة في مصدر HTML ، والتي يمكن عرضها باستخدام مصدر صفحة العرض ، وليس على المحتوى الفعلي في 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>

أطيب التحيات

هل كانت مفيدة؟

المحلول

المحلول: قضية تحميل jQuery

نصائح أخرى

  1. اجعل العنصر مخفيًا بـ CSS (عرض: لا شيء)
  2. أضف العنصر إلى الصفحة
  3. استدعاء SyntaxHighlighter.all ()
  4. عندما تكون مستعدًا لجعله مرئيًا ، قم بإزالة CSS أو الفصل الذي جعلها مخفية.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top