SyntaxHighlighter.all () لا يعمل على مستوى DOM؟ [مكرر
-
21-09-2019 - |
سؤال
تكرار ممكن:
قضية تحميل 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
نصائح أخرى
- اجعل العنصر مخفيًا بـ CSS (عرض: لا شيء)
- أضف العنصر إلى الصفحة
- استدعاء SyntaxHighlighter.all ()
- عندما تكون مستعدًا لجعله مرئيًا ، قم بإزالة CSS أو الفصل الذي جعلها مخفية.