Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > jquery возврат результата в переменную


Автор: kosyakLA 26.8.2011, 12:36
выполняю загрузку страницы через jquery

так получилось, что вызываю функцию загрузки из под другой функции JS примерно так

function loadPage() {

$('body').load(url);

}

в данном случае результат вернутся в страницу и перепишет её...а можно как-нибудь вернуть результат не в тэг, а например переменную в функции loadPage?

Автор: ayax2005 26.8.2011, 13:04
Делайте load в какой-нибудь скрытый элемент и по сакцесу берите его содержимое в переменную методом html

Автор: blah 27.8.2011, 01:04
kosyakLA,
Документация к jQ знает все ответы, раз уж про .load читали, то почему бы не почитать до конца?
Код

function loadPage() {

$('<div />').load(url, function(responseData){
myvar = responseData;
});
alert(myvar);
}


И вообще, .load это shorthand для .ajax, созданный для быстрого аппенда результата в элемент, только вот вы его используете совсем не по назначению.

Автор: kosyakLA 27.8.2011, 14:22
Спсаибо, буду изучать...А что лучше использовать для подгрузки страницы?...Видел там ещё .get метод

И ещё заметил, что в jquery Постоянно нужно указывать куда вывести результат...это критично? а то хотелось бы в некоторых случаях вывести в переменные


так же не могу разобраться как выводить в переменную позицию курсора:

function    getPos() {

var cursor = {x:0,y:0};

    $(document).mousemove(function(e){
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    });
alert(cursor.x);

}

выводит undefined...правда внутри функции выводит, что в переменную данные записаны

Автор: kosyakLA 27.8.2011, 19:11
Кстати вот это не работает

выводит undefined!

function loadPage() {
$('<div />').load(url, function(responseData){
myvar = responseData;
});
alert(myvar);
}


Если быть точнее мне нужно асинхронно сделать загрузку страницы и сделать return из функции...

Автор: EmilRegis 29.8.2011, 07:08
алерт то вызывается синхронно после асинхронной функции..Естественно, что когда выполняется алерт, переменная myvar ещё не определена

Автор: kosyakLA 31.8.2011, 02:56
получается все действия нужно проводить внутри function(responseData){
myvar = responseData;
});

?

но как же тогда сделать ретурн...просто мне нужно вернуть значение из функции

Автор: EmilRegis 31.8.2011, 10:13
зачем? приведи более полный пример там наверняка можно всё проще сделать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)