【问题标题】:In django: Problems with loading jquery with multiple plugins - or: How to load jQuery only once?在 django 中:使用多个插件加载 jquery 时出现问题 - 或者:如何仅加载 jQuery 一次?
【发布时间】:2017-09-17 03:56:09
【问题描述】:

我使用带有大量插件(“应用程序”)的 django (1.8.16)。有些是:

  • django-ckeditor==4.5.1
  • django-image-cropping==1.0.3
  • django.contrib.admin
  • django-jquery==3.1.0

我想在管理界面使用django autocomplete-light(简称dal)(3.2.1,当前版本)。现在我有以下 jquery 斗争。 dal 使用 jquery 但不加载它本身。它留给开​​发人员。 dal 附带一个脚本“select2.js”,在 $.select2 下注册一个函数。

现在的问题。当 ckeditor 或 image-cropping 之类的插件加载 jquery 时,函数 $.select2 不再可用。

我创建了一个bug report over at dal,但一位开发人员说我有责任先加载 jquery。

那么,我如何加载 jquery,在 dal 需要它之前加载它并且只加载一次?

【问题讨论】:

    标签: jquery python django django-admin django-autocomplete-light


    【解决方案1】:

    根据django-ckeditor docs

    如果您从其他来源加载 jQuery,请不要设置 [CKEDITOR_JQUERY_URL],django-ckeditor 不会尝试加载自己的 jQuery。

    您应该确保将所有可以加载 jQuery 的应用程序设置为不加载它,类似于上面。然后,使用 django-jquery 加载 jquery,确保 jQuery 在控制台中可用(即尝试输入 console.log($) 以查看它是否可用)。确保将 jQuery 模板标签放在其他库加载的任何其他模板标签之上。

    这应该可以解决您遇到的任何冲突。

    【讨论】:

    • 我猜你是对的。我不知道如何为管理员插件执行此操作。我会在星期一做一些研究。
    • @mogoh django.contrib.admin 不加载 jQuery,所以你很清楚 :)。
    • @YPCruble 我认为这适用于最新版本,但不适用于 1.8。为什么 jquery 会是here
    • @mogoh 你是对的,感谢更新!但是,Django 的库不会与您的库冲突,因为它是 uses the django.jQuery namespace。如果您只想使用管理员加载的 jQuery 版本,您可以随时执行 window.$ = window.jQuery = django.jQuery; 之类的操作。但你也可以毫无问题地加载自己的 jQuery 版本。
    猜你喜欢
    • 2011-10-23
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多