Я могу» t дать полный ответ на ваш вопрос, но я могу показать вам, почему вы получаете ошибку «Недопустимый аргумент».
Короче говоря, IE пытается установить ширину элемента в "NaNem"
. Попытка сделать это заставит IE генерировать ошибку «Недопустимый аргумент».
Но почему IE пытается установить ширину этого элемента для этого бессмысленного значения? Эта ширина сначала появляется в функции внутри плагина supersubs. Следующий код пытается найти ширину эм-тире в текущем шрифте ($$
содержит <ul>
элемент):
var fontsize = $('<li id="menu-fontsize">—</li>').css({
'padding' : 0,
'position' : 'absolute',
'top' : '-999em',
'width' : 'auto'
}).appendTo($$).width(); //clientWidth is faster, but was incorrect here
Однако IE вычисляет fontsize
в 0.
В дальнейшем, значение используется эта переменная:
var emWidth = $ul.add($LIs).add($As).css({
'float' : 'none',
'width' : 'auto'
})
// this ul will now be shrink-wrapped to longest li due to position:absolute
// so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
.end().end()[0].clientWidth/fontsize;
кажется clientWidth
здесь также 0, и поэтому это дает emWidth
значение NaN
.
Наконец, следующий добавляет «Em» блок для emWidth
(отсюда NaNem
) и пытается установить ширину <ul>
в "NaNem"
.IE не имея это и дает ошибку «Неверный аргумент»:
emWidth += 'em';
// set ul to width in ems
$ul.css('width',emWidth);
Однако, я боюсь, что я не могу сказать, почему IE возвращает 0 для fontsize
. Я бы рискнул догадаться о потенциальной ошибке в плагине supersubs - возможно, об этом стоит рассказать об этом на форумах jQuery или, как подсказывает сам Supersubs, JQuery Google Group?
Не имеет никакого отношения к CSS – epascarello