Я не могу дать полный ответ на ваш вопрос, но могу показать вам, почему вы получаете ошибку «Недопустимый аргумент».
Короче говоря, 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?