Во время выполнения функции произошла странная ошибка - PullRequest
0 голосов
/ 15 января 2012

У меня есть следующая функция:

var appendStructure = {

        init : function(wrapper,structure,cls,callback) {

            $(wrapper).appendTo(container).hide()
            var object = $(container).find(cls);
            $(structure.join('')).appendTo(object);
            showObj(object,function() {
                if(opts.centerObj == true) {
                    $(window).resize(function() {
                        var cssProps = getProps(object);
                        object.css(cssProps);
                    });
                }
                if(typeof callback == 'function') {
                    callback();
                }
            });

        }
}

И другие функции, которые в нем вызываются:

var getProps = function(obj) {
    return {
        'position' :'absolute',
        'top' : (($(window).height() - $(obj).outerHeight()) / 2)+'px',
        'left' : (($(window).width() - $(obj).outerWidth()) / 2)+'px'
    }
}

var showObj = function(obj,callback) {
    return setTimeout(function () {
        if(opts.centerObj == true) {
            var cssProps = getProps(obj);
            obj.css(cssProps).fadeIn('slow');
        }
            else {
                obj.fadeIn('slow');
            }
        if(typeof callback == 'function') {
            callback();
        }
    }, 1500);
}

И я запускаю функцию так:

if(appendStructure.init(wrapper.login,structure.login,'.content-login')){
        console.log('Object Appended'); 
    }
        else {
            console.log('Error');   
        }

Мой вопрос: почему консоль выводит Error, потому что функция действительно работает и все, что должно произойти, происходит?

1 Ответ

5 голосов
/ 15 января 2012

appendStructure.init не имеет значения return, поэтому возвращаемое значение будет undefined. undefined оценивается как false, поэтому выполняется ветвь else вашего оператора if...else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...