我有一个更新表单的 onchange 事件,在更新过程中它调用一个函数来计算运费。我不确定为什么,但是当我尝试调用该函数时出现以下错误:
未捕获的类型错误:数字不是函数
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
我已检查以确保变量 distance
已设置。
控制台显示未捕获的类型错误发生在我调用 shipping(1)
的那一行。关于为什么会发生这种情况有什么想法吗?
最佳答案
您是否在任何地方使用 shipping
作为变量?听起来 function
shipping 正在通过将其用作数值为 1
的 variable
来覆盖。
它不在您发布的代码中(您提到的对 shipping(1)
的调用也不在其中)。
关于javascript - 是什么导致错误 "Uncaught TypeError: number is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332137/