2013-05-24 3 views
1

Возникла проблема с областью в JavaScript и работе косяка, как передать значение изПрисвоение значения переменной внутри функции

$(document).ready(function() { 
    availableTags = new Array(); 
    $.getJSON('index.php?getTagList', function(data) { 
     availableTags = data; 
     alert(data); 
    }); 
    alert(availableTags); 
}); 

Я знаю, что данные правильно и предупреждение подтверждает это, но как назначить ли я его переменной доступных тэгов? серьезный strigling с областью действия в javascript ...

+1

Не проблема с объемом; функция обратного вызова 'getJSON' работает хронологически последней. – apsillers

+0

Другой дубликат: [jQuery async ajax query и возвращающая значение проблема] (http://stackoverflow.com/questions/2931100/jquery-async-ajax-query-and-returning-value-problem-scope-closure) – apsillers

ответ

6

Проблема в том, что $.getJSON(url, callback) является асинхронным. Обратный вызов не был выполнен (и установите переменную availableTags), прежде чем пытаться предупредить переменную availableTags.

+0

Что Роб сказал. В принципе, вам нужно поместить остальную часть вашего кода в функцию '$ .getJSON' или вызвать другую функцию с возвращенными данными. –

+0

Спасибо, Роб, продолжайте забывать :) –

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