0

django-autocomplete-light を使用して、いくつかのオートコンプリート オプションをレンダリングしています。

Web サイトには問題なく動作する場所がありますが、別の場所では動作しない場所があり、実際には部分的に動作します。

オートコンプリート オプションは問題なくレンダリングされますが、ユーザーがそれらのいずれかをクリックすると、次のようにスローされます。

キャッチされていない TypeError: オブジェクト [オブジェクト オブジェクト] にメソッド 'yourlabsWidget' がありません

違いは何ですか?

それが完全に機能するページで、フォーム全体をレンダリングしています。このウィジェットでは、イディオム {{ form.field }} でフィールドのみを使用しています。

編集

django-autocomplete-light の JavaScript ファイルは、両方のページで問題なく読み込まれています。

誰にも手がかりがありますか?

編集2

<head>
    <script type="text/javascript" src="/static/js/jquery/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" src="/static/js/jquery/jquery-ui-1.9.2.custom.min.js"></script>
    <script type="text/javascript" src="/static/js/bootstrap/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css" href="/static/css/jquery/jquery-ui-1.9.2.custom.min.css">
    <link rel="stylesheet" type="text/css" href="/static/css/bootstrap/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="/static/css/main.css">

<script type="text/javascript" src="/static/autocomplete_light/autocomplete.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/addanother.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/text_widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/remote.js"></script>
<link rel="stylesheet" type="text/css" href="/static/autocomplete_light/style.css">
    <script data-main="/static/js/rotas.js/main.js" src="/static/js/require/require.js"></script>    
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="main" src="/static/js/rotas.js/main.js"></script>

4

1 に答える 1

4

yourlabsAutocomplete 拡張機能が jquery インスタンスに適切に追加された後、未定義になった場合: 別の jquery が前のものの上にロードされました。

require.js を使用している場合は、次のいずれかを行います。

  • jquery を手動で読み込まないでください。require.js を介してjqueryとオートコンプリート スクリプトを読み込みます。
  • require.js 経由で jquery をロードしない

疑わしい場合は、生成されたページからタグを抽出<script>し、firebug または webkit インスペクターを使用して、jquery が 2 回読み込まれていないかどうかを確認してください。

django-autocomplete-light は、jquery/javascript 戦略を台無しにするつもりはありません。したがって、邪魔になる理由はありません。邪魔になる場合は、javascript の読み込み戦略に何か問題があることを意味します。

于 2013-01-30T09:50:33.650 に答える