jQuery и IE, вообще не ведущие себя - PullRequest
2 голосов
/ 27 января 2010

Решение

var options = { opacity: opacity }; //Many thanks to David Higgins for his help
var direction;
if(id == "chat") { 
    direction = {right: dir + amt, top: dir + amt };
} else if(id == "rplayed") { 
    direction = {left: dir + amt, top: dir + amt };
} else if(id == "info") { 
    direction = {right: dir + amt, bottom: dir + amt };
} else if(id == "player") { 
    direction = {left: dir + amt, bottom: dir + amt };
}
$.extend(options, direction);
$(wid).animate(options, 200);

Вопрос

Я работал над сайтом, который очень интенсивно использует jQuery в Chrome и Firefox. Теперь дело дошло до того, что он открывается в IE, и посмотрим, как IE относится к сайту.

Я прошел через jQuery и действительно не вижу, что не так с чем-то, что я написал, и IE просто выдает ошибку «Недопустимый аргумент - строка 142 - jquery.js» (фактический исходный файл jQuery) ,

На веб-сайте jQuery имеет две основные цели: обновление элементов с помощью Ajax и JSON и перемещение элементов (скрытие / отображение и скольжение) для создания интерфейса окна).

Сайт находится по адресу deadlink , а JS находится по адресу deadlink

Может кто-нибудь объяснить, что не так с моим кодом jQuery? Я понятия не имею, с чего начать, я не ожидаю, что вы это исправите, просто укажи мне правильное направление и дай мне понять, что происходит!

Если вы хотите увидеть, что сайт должен делать, откройте его в FF или Chrome!

Большое спасибо,

Ответы [ 2 ]

1 голос
/ 28 января 2010

Похоже, что ваш код в строке 102 main.js:

$(wid).animate({
  opacity: opacity,
  left: left,
  top: top,
  bottom: bottom,
  right: right
}, 200);

Передает 'undefined' в качестве значения для 'top'.

Мое предложение,

код над ним ... должен сделать что-то вроде этого:

var options = { opacity: opacity };
if(id == "chat") {
  jQuery.extend({right: dir + amt, top: dir + amt }, options);
} else if(id == "rplayed") {
  jQuery.extend({left: dir + amt, top: dir + amt}, options);
} // snipped - you get the point
$(wid).animate(options, 200);

Я не проверял весь вызов jQuery.extend () ... но это должно решить проблему с недопустимыми параметрами - IE не нравится устанавливать недопустимые значения в свойствах CSS (это включает в себя 'null', 'undefined', alpha когда ожидалось числовое значение, «0», когда «нет» и т. д.). FF, Chrome и Safari все обрабатывают это изящно ... просто игнорируя значение CSS (и в этом случае оно пропускало значение для вас - заставляя рендер выглядеть правильно).

Надеюсь, это поможет.

0 голосов
/ 27 января 2010

Боюсь, у меня нет времени прочесывать источник, но если вы застряли, а у вас его еще нет, попробуйте пройти через js с помощью firebug lite , чтобы отследить проблему .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...