2013-08-05 2 views
0

У меня есть две функции: updateTooltipContent и distance.Функция вызова с javascript

Когда я пытаюсь позвонить distance(latt) в updateTooltipContent, он не возвращает никакого значения. Я не могу понять, почему не

КОД:

function updateTooltipContent() { 
    var fullt = $(this).width(); 
    var startt = $(this).position().left + 200; 
    var endt = fullt + startt; 
    var latt = $(this).attr("lat"); 
    return "Spending: " + formatTime(fullt) + 
    "</br> Between:(" + formatTime(startt) + " and " + 
     formatTime(endt) + ") </br>" + distance(latt) + "km"; 
} 
}); 

function distance(latt) { 
    var bigArray = nArray(); 
    var dis = 0.00; 
    for (var x = 0; x < bigArray.length; x++) { 
     if (bigArray[x].lat == latt) { 
      dis = bigArray[x].DISTANCE_FROM_PREVIOUS_OBJECT_LOCATION; 
      break; // no point doing anymore loops as we've found the answer 
     } 
     return dis; 
    } 
} 

Этот код работает замечательно, но когда я пытаюсь поставить некоторые из кода функции, то обыкновение работать: рабочий код без функции Distance()

function updateTooltipContent() { 
    var fullt = $(this).width(); 
    var startt = $(this).position().left + 200; 
    var endt = fullt + startt; 
     var latt = $(this).attr("lat"); 
     var bigArray = nArray(); 
var distance = 0.00; 

for(var x = 0; x < bigArray.length; x++) 
{ 
    if(bigArray[x].lat == latt) 
    { 
     distance = bigArray[x].DISTANCE_FROM_PREVIOUS_OBJECT_LOCATION; 
     break; // no point doing anymore loops as we've found the answer 
    }   
} 
     return "Spending: "+formatTime(fullt) + "</br> Between:("+formatTime(startt) + " and " +formatTime(endt)+") </br>" + distance.toFixed(2) + "km"; 
    } 
}); 
+5

* «есть некоторая ошибка» * Мы должны угадать ошибку или вы собираетесь рассказать нам об этом? [Узнайте, как ** отлаживать ** JavaScript] (http://www.netmagazine.com/tutorials/javascript-debugging-beginners). –

+0

yes fnction dont return any value, distance (latt) dont return any value –

+0

Является ли 'bigArray.length' больше 0? В противном случае ваша функция ничего не возвращает. – putvande

ответ

1

После того, как bigArray [x] .lat == решетка, вызывается оператор break, цикл for будет немедленно пропущен; так как ваш оператор возврата остается в цикле, конечно, ничего не вернется.

Чтобы устранить эту проблему, просто переместите оператор возврата из цикла for.

+0

РАБОТА, СПАСИБО, ТАК ЛЕГКО –

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