代码之家  ›  专栏  ›  技术社区  ›  hookedonwinter

是什么导致错误“uncaughttypeerror:number不是函数”

  •  8
  • hookedonwinter  · 技术社区  · 14 年前

    我有一个更新表单的onchange事件,在更新过程中它调用一个函数来计算运费。我不知道为什么,但在尝试调用函数时出现以下错误:

    Uncaught TypeError: number is not a function

    shipping ,如下所示:

    function shipping( weight )
    {
        var flat
    
        switch( weight )
        {
            case 1:
            case 2:
            case 3:
                flat = 32.00;
                break;
    
            case 4:
                flat = 18.50;
                break;
    
            case 5:
                flat = 15.80;
                break;
    
            case 6:
                flat = 14.00;
                break;
    
            case 7:
                flat = 12.71;
                break;
    
            case 8:
                flat = 11.75;
                break;
    
            case 9:
                flat = 11.00;
                break;
    
            case 10:
                flat = 10.40;
                break;
    
            case 11:
                flat = 9.91;
                break;
    
            case 12:
                flat = 9.50;
                break;
    
            case 13:
                flat = 9.15;
                break;
    
            case 14:
                flat = 8.86;
                break;
    
            case 15:
                flat = 8.86;
                break;
    
            case 16:
                flat = 8.38;
                break;
    
            case 17:
                flat = 8.18;
                break;
    
            case 18:
                flat = 8.00;
                break;
    
            case 19:
                flat = 7.84;
                break;
    
            case 20:
                flat = 7.70;
                break;
    
        } // switch
    
        var flat_fee = flat * weight;
        var mile_fee = distance * 0.90;
    
        var shipping_fee = flat_fee + mile_fee;
        simpleCart.shippingTest = shipping_fee;
        return shipping_fee;
    } // shipping
    

    我要过去 1 马上。变量 distance 来自在运行此函数之前完成的ajax调用。该函数如下所示:

    function get_distance( zip )
    {
    
        $.getJSON(
            'distance.php',
            { zip:zip },
            function(json)
            {
                distance = json 
            })
    
    } // get_distance
    

    我已经检查了变量 已设置。

    控制台说在我呼叫的线路上发生了未捕获的类型错误 shipping(1) . 你有没有想过为什么会这样?

    1 回复  |  直到 14 年前
        1
  •  23
  •   Samuel Neff    14 年前

    shipping 作为变量?听起来像是 function variable 数值为 1

    它不在您发布的代码中(调用 shipping(1)