JQuery GET назначение данных

0

Извините, но я новичок в jQuery, так что это может показаться глупым вопросом.

У меня есть общая функция, которая вызовет $.get для извлечения некоторых данных из URL-адреса, и тогда я хочу назначить переменную, а не элемент управления.

Здесь моя функция, было упрощено очистить "шум"...

function LoadFromURL(url) {
    var response = "";
    $("textarea#dump").val("url=" + url);   // Shows the URL, no problem

    $.get(url, "", function (data) {
        response = data;
        $("textarea#dump").val(response);   // Shows the data, no problem
    });

    $("textarea#dump").val(response);   // Shows NOTHING!
    return (response);
}

Проблема в том, что значение response довольно счастливо назначает внутри функции обратного вызова, но когда он получает return (response) переменная пуста.

  • 0
    Следующая ссылка Квентина показывает, насколько мало я знаю о jQuery / Ajax ... Прочитав связанный вопрос, я теперь понимаю, что мне нужно реорганизовать код для асинхронной работы.
Теги:

1 ответ

0

Строка " Shows NOTHING слишком рано, чтобы быть полезной. Вы должны начать с функции обратного вызова и перейти оттуда. Вы можете вызвать метод из обратного вызова.

Назовите это так:

var cb = function(data) {
  $("textarea#dump").val(data);  
}
LoadFromUrl("someUrl", cb);

или inline следующим образом:

LoadFromUrl("someUrl", function(data) {
   $("textarea#dump").val(data);  
});

Измените свой метод следующим образом:

function LoadFromURL(url, cb) {
  $("textarea#dump").val("url=" + url);   // Shows the URL, no problem


  $.get(url, "", function (data) {
     cb(data);  //<-- call the CallBack method
  });

}

Это больше похоже на javascript, чем jQuery, обратные вызовы - это образ жизни в js.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню