Django admin - jQuery命名空间

时间:2011-08-25 10:09:09

标签: jquery namespaces django-admin

我正在尝试在我的Django管理站点中使用某些jQuery插件。

Django admin将jQuery名称空间设置为django.jQuery(以避免冲突)

如果我没有jQuery的默认$命名空间,插件将无效,是吗?

我是否必须做类似

的事情
window.$ = django.jQuery

&我在哪里可以为整个管理站点更改此命名空间?

3 个答案:

答案 0 :(得分:12)

实际上,大多数插件都需要“jQuery” - 而不是$ - 才能获得,然后在dmidz的答案中提供$ self。

因此,插入

var jQuery = django.jQuery;

在您的外部参考之前。如果您正在加载一堆第三方jQuery插件,请将上面的行放在插件之前的脚本标记中。

五个月前另见我的问题How to provide $ to third-party, external jQuery plugins in Django admin

答案 1 :(得分:4)

我建议你将jQuery保留在django.jQuery名称空间中,当使用可能存在冲突的不同模块的cms时,这是一个好主意。 但是你将插件包装在以下内容中:

;(function($){
  // here $ is only in this scope and so totally inobrusive
  // plugin code
})(django.jQuery);

答案 2 :(得分:2)

其他人遇到了类似的问题,并使用了deconflict函数:http://www.lokkju.com/blog/archives/143

我不确定Django使用的是什么版本,但我认为使用django命名空间的关键是它可以使用自己的jQuery版本进行内部操作,但仍然允许你为自己的工作使用不同的版本