Добрый день, подскажите пожалуйста.
При переходе с версии 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, как только я его возвращаю - все ОК! никаких ошибок нет!
может это ошибка разработчиков?