Вопрос

На странице возникли проблемы...http://schnell.dreamhosters.com/index.php?page=gallery#

Я использую Firebug для отладки jQuery и других фрагментов кода, и он оказался очень полезным для отладки Javascript/jQuery.Однако в то же время это был один из самых разочаровывающих опытов отладки, с которыми я когда-либо сталкивался.Я не знаю почему, но иногда кажется, что я могу скопировать чужую методологию из учебника, персонаж за персонажем, и все равно получать ошибки.

В любом случае, проблема здесь в том, что Firebug утверждает, что в строке 20 исходного кода есть ошибка.

отсутствующий :после идентификатора свойства [Прерывание при этой ошибке] $('#table').animate({"left:" + attr + "px"}, 2000);

Мне эта ошибка кажется огромной нагрузкой, потому что двоеточие прямо там!И именно поэтому отладка jQuery/Javascript иногда доставляет такую ​​боль.Сообщения об ошибках довольно запутаны и иногда даже не имеют для меня никакого смысла.Или, может быть, это просто Firebug.

В любом случае, цель, которую я здесь преследую, состоит в том, чтобы попытаться динамически изменить функцию анимации так, чтобы чем чаще вы нажимали стрелку влево, тем дальше влево смещалась сетка изображений (из-за природы CSS «левое» свойство).У меня есть переменные Javascript и скрытый тег ввода, которые помогают хранить важные значения, но основным препятствием является получение функции анимации для распознавания этих переменных.Насколько я могу судить, он принимает только строковые литералы в качестве аргументов о том, как анимировать, и документация мне не помогает, потому что в ней не обсуждается использование переменных с анимацией, как будто это невозможно.

Ну, скажем так, я не люблю невозможного, ему очень нравится мешать мне.

Это было полезно?

Решение

Литерал объекта, переданный функции animate, сформирован неправильно, это должно быть:

$('#table').animate({left: attr + "px"}, 2000);

Изменить . Внимательно изучая свой код, вы также пытаетесь получить значение из ввода с идентификатором id = " count " и у вас отсутствует символ # для селектора идентификатора:

var count = +$('#count').val(); // get #count value as Number

Вы также увеличиваете эту переменную count , но сначала следует преобразовать ее в Number, поскольку атрибут value элементов input является строкой , ( Я сделал это, используя унарный оператор плюс в правой части назначения ).

Вы должны преобразовать его в число, потому что если вы добавите две переменные и одна из них будет строкой, произойдет конкатенация:

 "1" + 1 == "11"

Другие советы

Пытаться:

$('#table').animate({left: attr}, 2000);

Единицы измерения «px» здесь не нужны.Помимо этого, вышеизложенное является правильным созданием анонимного объекта.Вы просто помещали строку в фигурные скобки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top