Срочно нужна помщь!

12 views
Skip to first unread message

Kate Koval

unread,
Mar 5, 2014, 6:04:40 AM3/5/14
to mooto...@googlegroups.com
Добрый день, подскажите пожалуйста.
При переходе с версии 1.3 на 1.4.5 возникла проблема.
Вот метод SetStyle из 1.3
  setStyle: function(property, value){
            try { // IE FIX
                switch (property){
                    case 'opacity': return this.set('opacity', parseFloat(value));
                    case 'float': property = floatName;
                }
                property = property.camelCase();
                if (typeOf(value) != 'string'){
                    var map = (Element.Styles[property] || '@').split(' ');
                    value = Array.from(value).map(function(val, i){
                        if (!map[i]) return '';
                        return (typeOf(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
                    }).join(' ');
                } else if (value == String(Number(value))){
                    value = Math.round(value);
                }
                this.style[property] = value;
            } catch(e) {} // IE FIX
            return this;
        },
А вот он же из последней версии библиотеки
    setStyle: function(property, value){
           
                if (property == 'opacity'){
                    if (value != null) value = parseFloat(value);
                    setOpacity(this, value);
                    return this;
                }
                property = (property == 'float' ? floatName : property).camelCase();           
                if (typeOf(value) != 'string'){
                    var map = (Element.Styles[property] || '@').split(' ');
                    value = Array.from(value).map(function(val, i){
                        if (!map[i]) return '';
                        return (typeOf(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;
                    }).join(' ');
                } else if (value == String(Number(value))){
                    value = Math.round(value);
                }
                this.style[property] = value;
                //<ltIE9>
                if ((value == '' || value == null) && doesNotRemoveStyles && this.style.removeAttribute){
                    this.style.removeAttribute(property);
                }
                //</ltIE9>       
           
            return this;
        },

Как видите, разницы почти нет, особенно меня смущает, то что в новой версии убрали try{} catch() {}
Как раз из-за него у меня и происходит ошибка. В консоли выводит следующее:
Uncaught TypeError: Object function (){ return lower; } has no method 'split'

кто мне объяснит, зачем в последней версии убрали try/catch, как только я его возвращаю - все ОК! никаких ошибок нет!
может это ошибка разработчиков?
























Олег Черній

unread,
Mar 5, 2014, 7:07:17 AM3/5/14
to mooto...@googlegroups.com
try catch "глушит" ошибку, которая на самом деле есть. Возможно, свойство, которое вы хотите изменить у заданного объекта не существует.

Середа, 5 березня 2014 р. 13:04:40 UTC+2 користувач Kate Koval написав:

Kate Koval

unread,
Mar 5, 2014, 7:59:56 AM3/5/14
to mooto...@googlegroups.com
Так ошибка в самом mootols? почему его убрали из последней версии?

Середа, 5 березня 2014 р. 14:07:17 UTC+2 користувач Олег Черній написав:
Reply all
Reply to author
Forward
0 new messages