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() ?