Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.01.2015, 11:21
Интересующийся
Отправить личное сообщение для WebBizMedia Посмотреть профиль Найти все сообщения от WebBizMedia
 
Регистрация: 13.01.2015
Сообщений: 11

return this; // TypeError: this is not defined
Уважаемые знатоки, прошу помощи с возникшим затруднением:

function addNewMod(modUrl,typeMod){
		$.get(modUrl,function(modData){ 
			var thisMod = $(modData).appendTo('.pages');
			thisMod.attr('id',MathRoundId(typeMod));
			thisMod.center();
			console.log(thisMod.attr('id')); //выводит всё верно "mod_Text_753"
		});
		return thisMod; //сдесь ошибка "ReferenceError: thisMod is not defined"
	};

var thisMod = addNewMod(modUrl,typeMod);
		console.log(thisMod.attr('id'));
Ответить с цитированием
  #2 (permalink)  
Старый 13.01.2015, 11:26
Аватар для nice_try
Профессор
Отправить личное сообщение для nice_try Посмотреть профиль Найти все сообщения от nice_try
 
Регистрация: 11.12.2013
Сообщений: 313

thisMod у тебя инкапсулирован в функции и return не видит его. определи его раньше запроса - var thisMod = false; например.
кроме того return никогда не увидит корректный thisMod, так как он определяется в результате ajax запроса. результат приходит после выполнения функции
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2015, 11:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

WebBizMedia,
классика или почему этот вопрос возникает снова и снова
потому что вот такой он северный олень ... и зовут его асинхронность ...
Сообщение от bes
каждый в своей жизни должен создать тему с этим вопросом
Как передать объект в функцию.

Последний раз редактировалось рони, 13.01.2015 в 11:30.
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2015, 11:34
Интересующийся
Отправить личное сообщение для WebBizMedia Посмотреть профиль Найти все сообщения от WebBizMedia
 
Регистрация: 13.01.2015
Сообщений: 11

Сообщение от nice_try Посмотреть сообщение
thisMod у тебя инкапсулирован в функции и return не видит его. определи его раньше запроса - var thisMod = false; например.
кроме того return никогда не увидит корректный thisMod, так как он определяется в результате ajax запроса. результат приходит после выполнения функции
function addNewMod(modUrl,typeMod){
var thisMod = false;
		$.get(modUrl,function(modData){ 
			thisMod = $(modData).appendTo('.pages');
			thisMod.attr('id',MathRoundId(typeMod));
			thisMod.center();
			console.log(thisMod.attr('id')); //выводит всё верно "mod_Text_753"
		});
		return thisMod; 
	};

var thisMod = addNewMod(modUrl,typeMod);
		console.log(thisMod.attr('id')); //сдесь ошибка TypeError: thisMod.attr is not a function

Я уже итак пробовал, я понимаю что return не видит "thisMod". Собственно в этом и вопрос, как вернуть обьект jquery "thisMod".
Ответить с цитированием
  #5 (permalink)  
Старый 13.01.2015, 14:20
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

function addNewMod(modUrl,typeMod){
var thisMod = false;//здесь ты объявляешь переменную чтоб типо железно никуда не делась
        $.get(modUrl,function(modData){
            thisMod = $(modData).appendTo('.pages');
            thisMod.attr('id',MathRoundId(typeMod));
            thisMod.center();
            console.log(thisMod.attr('id'));
        });// тут выполняешь АСИНХРОННЫЙ запрос, который выполняется скажем 2 секнды
        return thisMod;//тут возвращаешь вроде бы результат свое АСИНХРОННОГО гета, но увы как сказано выше он выполняется 2 секунды, а ретурн выполняется в ту же самую секунду что ты вызвал функцию. Стало быть ты возвращаешь false, который присвоил вверху.
    };
 
var thisMod = addNewMod(modUrl,typeMod);
        console.log(thisMod.attr('id')); //И брюки превращаются в Type error

Может стоит и return выполнять внутри функции $.get() ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции Hol1killer Prototype & script.aculo.us 11 05.12.2016 01:37
jQuery научите пользоваться. Станислав89 Общие вопросы Javascript 10 19.12.2013 23:01
Jin: И снова о наследовании tenshi Ваши сайты и скрипты 16 19.08.2013 20:30
Помогите разобраться ŞΘLƉiΞR Общие вопросы Javascript 2 28.08.2012 11:57
регулярки: замена ссылки на ютуб Hekumok Общие вопросы Javascript 105 01.08.2012 10:48