2

私は JavaScript を使用しており、別の .js ファイルから関数を呼び出す必要があります。

ほとんどの場合、コードは機能しますが、「オブジェクトにメソッド オドメーターがありません」というエラーが表示されることがあります。getScript() の呼び出し内にコードを入れて、関数を呼び出そうとする前にロードされていることを確認しましたodometer()が、それでもランダム エラーが発生します。

コードは次のとおりです。

var updateDisplay = function(){
    console.log("refreshing Odometers");
    $.getScript("/odometer.js", function(){
        $.getJSON(
            '/getData',
            {
                product: '',
                unit: unitSelection(),
                period: salesPeriod(),
                reportBegin: $("#datepickerfrom").val(),
                reportEnd: $("#datepickerto").val()
            },
            function(data){
                    $(".odometer").odometer({
                        odometerData:data
                    });
            });
    });
};

次の行でエラーが発生します。

$(".odometer").odometer({
    odometerData:data
});

「オブジェクトにはメソッドオドメーターがありません」と表示されます。

私は開発に Play フレームワークを使用しており、jQuery とその他の JavaScript ファイルを HTML ページに既にインポートしています。

これが私のJSインポート順序です:

  1. jquery
  2. odometer.js (getScript を使用していますが、念のため置いておきます)
  3. main.js (指定されたコードが存在する..)

私は何を間違っていますか?

助けてくれてありがとう....

4

2 に答える 2

1

ajaxキャッシング設定に問題があるようです。

私はこの質問から答えを見つけました:

jquery ajax バグ

追加後

$.ajaxSetup({ cache: true });

getScript は正常に動作します。時間を割いてくれてありがとう:)

于 2012-05-24T10:29:14.587 に答える
1

おもう

$(".odometer").odometer({...})

オドメーターがjQueryに拡張する前に呼び出され、フローは次のようになります

$(".odometer").odometer({...});     // first called
$.fn.odometer = function(){...};    // later it was extended to jQuery
于 2012-05-23T18:59:57.723 に答える