【发布时间】:2011-07-25 23:13:18
【问题描述】:
我在我的 Django 管理基本模板中包含了几个第三方 jQuery 插件,它们假定“$”可用。
对于我自己的代码,我一直很乐意这样做
(function($) {
my_code = 'here';
})(django.jQuery);
但是我怎样才能将“$”提供给位于外部文件中的其他人的代码?
<script src="{{ STATIC_URL }}js/jquery.json-2.2.min.js" type="text/javascript"></script>
抱怨“$”是未定义的。我试过把
<script type="text/javascript">var $ = django.jQuery;</script>
在该外部引用之前,但无济于事(顺便说一句,这是为什么?我知道加载是同时发生的,但是执行?我可以在定义它后立即使用那个“$”。)。
我对 Django 管理员提供的 jQuery 版本很满意,并且真的不想加载另一个版本。我也不想编辑别人的插件,让它以上面的“$”重新定义开始。 编辑:我也不想像我自己的代码一样包装它,我根本不想碰这些文件。
我真的必须求助于将 $.getScript() - http://api.jquery.com/jQuery.getScript - 放入我的匿名函数来加载此类文件吗?
编辑:在实际查看外部文件 jquery.json-2.2.min.js 之后,我看到它已经被包装到一个假定“jQuery”可用而不是“$”的函数中。插入后
变量 jQuery = django.jQuery;
在外部参考之前,它工作正常。但这真的应该这样做吗?
【问题讨论】:
-
重新定义将是双重错误,因为您声明了一些对函数参数名称没有影响的全局变量。
-
对不起,这只是一个肮脏的解决方法的尝试。我已经编辑了这个问题,以澄清我根本不想接触那些外部库文件。
-
我的意思是肮脏的解决方法行不通。 :)
标签: jquery django namespaces external admin