IE Invalid Argument Error - говорит, что это ошибка в jQuery, но я не думаю - PullRequest
2 голосов
/ 11 ноября 2009

Я выдернул свои волосы из-за ошибки неверного аргумента в IE7, может быть, все IE ...

Сайт: http://www.karencaldwelldesign.com/fashion

IE говорит, что это ошибка в строке 12, но если я открою Script Debugger, он говорит, что проблема в некотором коде в jQuery. Я не покупаю это.

Итак, я посмотрел свой сценарий (http://www.caldwellsnyder.com/__data/assets/js_file/0003/5943/kc-gallery.js), и кажется, что проблема в строке 65:

data = '<div id="content'+id+'" class="content">'+data+'</div>';

данные возвращаются из функции jQuery $ .ajax (), но мне нужно было обернуть их дополнительным пронумерованным div.

В частности, именно переменная id вызвала ошибку неверного аргумента, но я понятия не имею, почему! Var - это просто число, которое увеличивается. Удаление переменной из этой строки позволяет странице загружаться идеально, но мне действительно нужно увеличить идентификатор таким образом.

Кто-нибудь знает, почему эта простая переменная может привести к неверному аргументу в IE?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2009

Каким-то образом вы пытаетесь установить ширину -5px; IE не нравится это. Это значение берется из строки $this.css(cssToApply); в JScrollPane.js, которая получает его при вычислении переменной realPaneWidth:

var realPaneWidth = paneWidth - settings.scrollbarWidth - settings.scrollbarMargin - p;

При этом paneWidth и settings.scrollbarWidth равны 676, а settings.scrollbarMargin равен 5, что дает вам -5 (p равно нулю).

В kc-gallery.js вы инициализируете jScrollPane значением 676 для scrollbarWidth в функции applyScroll. Это вызывается из функции setInterval, назначенной переменной check_images, и это возвращает нас обратно к стеку вызовов из того места, где IE фактически выдает ошибку при установке width на -5px.

Так что это определенно связано с тем, как вы используете JScrollPane. Возможно, вы захотите проверить документацию для каких-либо советов - я никогда не использовал этот плагин, поэтому я боюсь, что не могу помочь с этим. Однако значение scrollbarWidth, равное 676, кажется немного чрезмерным ... в соответствии с документацией JScrollPane :

scrollbarWidth [int] - ширина создаваемой полосы прокрутки в пикселях (по умолчанию 10)

0 голосов
/ 11 ноября 2009

Ошибка, которую вы видите, происходит от jQuery, когда вы пытаетесь установить для атрибута DOM значение, которое недопустимо. Например, попробуйте установить для z-index значение NaN или строку. Ошибки IE на этом, где firefox и другие браузеры просто игнорируют значение.

Пример этого можно увидеть, поместив следующую строку в консоль на этой странице в IE8 или используя Jash для более ранних версий: jQuery("#header").css("z-index", NaN);

Похоже, что ваша переменная glob_index в какой-то момент становится неопределенной, поэтому jQuery выдает ошибки при попытке установить для этого z-index узла DOM.

...