我正在尝试在我的Django管理站点中使用某些jQuery插件。
Django admin将jQuery名称空间设置为django.jQuery
(以避免冲突)
如果我没有jQuery的默认$
命名空间,插件将无效,是吗?
我是否必须做类似
的事情window.$ = django.jQuery
&我在哪里可以为整个管理站点更改此命名空间?
答案 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版本进行内部操作,但仍然允许你为自己的工作使用不同的版本