Во-первых, вам нужно каждый раз отсоединять click
, в противном случае код будет выполняться несколько раз.
Во-вторых, вам нужно использовать данные, возвращаемые вызовом .ajax
, только в случае успеха:
$('.subareas').unbind("click");
$('.subareas').bind('click', function(){
var keytext = $(this).find('.areakey').text();
$.ajax({
type: 'POST',
url: 'http://localhost:8888/getactivity',
data: {activitykey: keytext},
success: function(result) {
activityobj = jQuery.parseJSON(result);
var activityurl = activityobj.mapurl;
var activmapurl = "<img src=\""+activityurl+"\"></img>";
$('#activity-mapimg').html(activmapurl);
$('#activity-activitykey').html(activityobj.key);
$('#activity-activitymode').html(activityobj.activityMode);
$('#activity-time').html(activityobj.totalTimeTaken);
$('#activity-distance').html(activityobj.totalDistanceCovered);
$('#activity-calories').html(activityobj.calories);
$('#activity-wallutas').html(activityobj.wallutas);
}
});
});
Переменная activityobj
не будет иметь никакого значения, кроме функции $.ajax()
, при первом запуске - во второй раз, когда она имеет значение предыдущего вызова.