django-cms 和 jQuery
Posted
技术标签:
【中文标题】django-cms 和 jQuery【英文标题】:django-cms and jQuery 【发布时间】:2011-05-10 05:23:57 【问题描述】:我有一个使用 django-cms 运行得非常愉快的 django 站点,但现在我想使用 jQuery 包含一些我自己的花哨的 javascript。我对 django 比较陌生,所以我的问题可能源于此。
Django-cms 使用 jQuery 本身,所以如果我将 jquery 添加到标题中 - 事情就会中断,这并不奇怪。如何在不影响 django-cms 的情况下添加自己的 jQuery?
目前我的 javascript 文件存储在我在项目 settings.py 中定义的媒体根目录中,如前所述,我在标题中引用它们。
当我读到这篇文章时,这似乎是一个愚蠢的问题,但我仍然感到困惑。
编辑::一些代码
我定义了一个媒体根目录:
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
在我的基本模板中,标题包括
<script src="/media/javascript/jquery.js" type="text/javascript"></script>
<script src="/media/javascript/application.js" type="text/javascript"></script>
application.js 中的 Javascript 可以工作,但是当 django-cms 启动时它会中断。例如,尝试将插件添加到占位符会导致:
Uncaught TypeError: Property 'type' of object function ( selector, context )
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
is not a function
我认为这是因为两个 jQuery 相互冲突
::另一个编辑:: 我可能应该补充一点,我使用 django 来托管静态文件只是因为它仍在开发中......
【问题讨论】:
需要澄清:您是否希望使用与 Django-CMS 附带的不同版本的 jQuery 库,还是只想包含用 jQuery 编写的自定义脚本? 我不介意使用捆绑的 jQuery - 但据我所知,它仅在 django-cms 管理栏等存在时加载。我确实需要包含一些额外的 jquery ui 元素和至少一个插件。 Django 不应与您的 jquery 冲突。您是否尝试过创建静态页面并添加 jquery 代码进行测试?如果您想在此处粘贴给您带来问题的代码,您可能会得到更具体的回复。 这个线程有什么帮助吗? old.nabble.com/… 我在 application.js 中编写的 javascript,例如,如果我有 alert("It Works!!"),它会像 jQuery 特定的东西一样愉快地运行。但它破坏了 django-cms 的东西 - 我应该更具体地说明实际破坏的内容。 【参考方案1】:好吧,链接 django-cms 捆绑的 jQuery 确实可以解决所有问题...
唉,它使用的是 1.3.2 版本,但我想我会处理这个问题,而不是现在尝试升级 django-cms。
【讨论】:
【参考方案2】:一个简单的解决方案:将您的 JQuery 库保留在页眉中,并将所有其他 JS 放在页面的底部,就在 </body>
之前。在这种情况下,在管理员模式下,您的 jQuery 库将被管理员的副本覆盖,然后您的所有代码都将被添加回其中。
【讨论】:
以上是关于django-cms 和 jQuery的主要内容,如果未能解决你的问题,请参考以下文章