Javascript:随机“对象没有方法”错误,即使使用 jquery.getScript()

Javascript: Random "Object has no method" error even with jquery.getScript()

本文关键字:jquery getScript 错误 随机 对象 有方法 Javascript      更新时间:2023-09-26

我一直在使用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导入订单:

  1. jquery
  2. 里程表.js(即使我使用getScript,我也把它放在那里只是为了确保)
  3. main.js(给定代码所在的 main。

我做错了什么?

感谢您的帮助...

我认为

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

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

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

Ajax缓存设置的问题。

我从这个问题中找到了答案:

jquery ajax bug

添加后

$.ajaxSetup({ cache: true });

getScript 工作正常。 谢谢你的时间,伙计们:)