2010-07-26 2 views
8

У меня есть событие onchange, которое обновляет форму, и в процессе обновления она вызывает функцию для вычисления доставки. Я не знаю, почему, но я получаю следующее сообщение об ошибке при попытке вызова функции:Что вызывает ошибку «Uncaught TypeError: number is not a function»

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 

Я проверил, чтобы убедиться, что переменная distance установлена.

Консоль говорит, что ошибка неотображаемого типа происходит в строке, где я звоню shipping(1). Любые мысли о том, почему это происходит?

ответ

23

Вы используете shipping как переменную в любом месте? Похоже, что function доставка будет перезаписана, используя ее как variable с числовым значением 1.

Это не в коде, который вы опубликовали (ни один из звонков на shipping(1) вы упомянули).

+0

Это было! Угу глупые ошибки. Спасибо! – hookedonwinter

Смежные вопросы