我一直在使用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框架进行开发,并且已经在HTML页面中导入了jQuery和其他JavaScript文件。

这是我的JS导入顺序:


jQuery的
odometer.js(即使我使用getScript,也只是为了确保将其放在此处)
main.js(给定代码驻留在其中。)


我究竟做错了什么?

感谢您的帮助。

最佳答案

我认为

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

在里程表扩展到jQuery之前被调用,流程可能像这样

$(".odometer").odometer({...});     // first called
$.fn.odometer = function(){...};    // later it was extended to jQuery

09-27 09:51