0

我最近刚刚在我的网站上添加了 Django 的 s3direct 插件。虽然它在我的管理页面上成功运行,但我无法让它在我的网站前端运行。

这是有问题的页面:http ://rigsandwagons-staging.herokuapp.com/listings/add/

我一直遇到 Uncaught TypeError: Property '$' of object [object Object] is not a function,特别是当我在页面底部添加以下脚本时:

    <script type="text/javascript" src="//rigsandwagons-staging.s3.amazonaws.com/static/shared-bg/js/jquery.iframe-transport.js"></script>
    <script type="text/javascript" src="//rigsandwagons-staging.s3.amazonaws.com/static/shared-bg/js/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="//rigsandwagons-staging.s3.amazonaws.com/static/shared-bg/js/jquery.fileupload.js"></script>
    <script type="text/javascript" src="//rigsandwagons-staging.s3.amazonaws.com/static/s3direct/js/s3direct.js"></script>

在做了一些研究之后,我认为它可能需要var $s3Direct = jQuery.noConflict()在 s3direct.js 中做一些事情,但我并不完全确定(因为删除该行会引入一大堆其他问题。

4

1 回答 1

0

我很确定如果您将 jQuery 定义为 noConflict,那么所有使用 jQuery 的脚本都需要引用“jQuery”而不是“$”。

您可以通过在下面包装使用 '$' 的代码来解决此问题:

jQuery( document ).ready(function( $ ) {
    // Code that uses jQuery's $ can follow here.
});

我看到您已经在代码的第 41 行完成了此操作,只需使用相同的技术即可。

另外:有问题的错误出现在第 661 行,但您已将代码移动到文件底部,也在准备好的函数中。为什么不把错误的代码也移到那里呢?会同时开火。我相信你也会有同样的错误,所以一定要在准备好的函数中传递'$'并将函数名'$'替换为'jQuery'。

尽管如此,我还没有使用过 Django,所以下一个建议旨在打破你的想法;如果您打算使用 Django,那么您可能需要使用以下内容:

$(Django).on('ready', function() {
    // code
});
于 2013-09-29T18:52:58.837 回答