0

最近、Django の s3direct プラグインを自分の Web サイトに追加しました。私の管理ページでは正常に機能しますが、サイトのフロントエンドで機能させるのに問題があります。

問題のページは次のとおりです: 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>

いくつかの調査を行った後、s3direct.js で何かを行う必要があるかもしれないと思いますがvar $s3Direct = jQuery.noConflict()、完全にはわかりません (その行を削除すると、他の多くの問題が発生したためです。

4

1 に答える 1

0

jQuery を noConflict として定義すると、jQuery を使用するすべてのスクリプトで「$」ではなく「jQuery」を参照する必要があると確信しています。

これは、「$」を使用するコードを次のようにラップすることで修正できます。

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

コードの 41 行目でこれを行っているようですが、同じ手法を使用してください。

また、問題のエラーは 661 行目に表示されますが、コードをファイルの最後に移動しました。間違ったコードもそこに移動してみませんか? 同時に着火します。そこでも同じエラーが発生すると思いますので、'$' を ready 関数に渡し、関数名 '$' を 'jQuery' に置き換えてください。

とはいえ、私は Django を使用したことがないので、次の提案はあなたの考えを覆すことを目的としています。Django を使用する場合は、次のようなものを使用する必要がある場合があります。

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