Возврат данных напрямую будет работать, только если вы отключите асинхронный GET для AJAX:
$.ajax({
type: 'GET',
url: '/activities/search',
data: { 'type': tyPe },
async : false,
success : function() { }
});
Это не рекомендуется, потому что браузер будет блокировать, пока ваш запрос не будет завершен. Вместо этого вы должны продолжать следовать модели асинхронного программирования, используя функцию обратного вызова:
$.ajax({
type: 'GET',
url: '/activities/search',
data: { 'type': tyPe },
async : false,
success : function() { }
});
function getUserHours(tyPe, tarGet, callback)
{
$.get('/activities/search', { 'type': tyPe },
function(data)
{
var hourResultData = jQuery.parseJSON(data);
var registeredHours = 0;
for (var i in hourResultData.activities){
registeredHours += parseFloat(hourResultData.activities[i].hours);
}
$(tarGet).empty().append(registeredHours);
if($.isFunction(callback))
callback(registeredHours);
});
}
getUserHours('r', '#reg-hours', function(hours) {
alert(hours);
});