Используя jQuery, как я анимирую добавление нового элемента списка к списку?

Следующие утверждения являются обобщениями; в то время как всегда возможно умолять исключение, это обычно (по моему опыту, и скромное мнение) не стоит рисков.

  1. Неограниченное использование адресов памяти (или GOTO или необработанные указатели) обеспечивает слишком много возможностей сделать легко преодолимые ошибки.
  2. , Чем больше путей там состоит в том, чтобы прибыть в конкретное "местоположение" в коде, тем менее уверенный может быть, о каком состояние системы в той точке. (См. ниже.)
  3. Структурное программирование, по моему скромному мнению, меньше о "предотвращении GOTOs" и больше о том, чтобы заставлять структуру кода соответствовать структуре данных. Например, повторяющаяся структура данных (например, массив, последовательный файл, и т.д.) естественно обрабатывается повторной единицей кода. Наличие встроенных структур (например, в то время как, поскольку, пока, для - каждый, и т.д.) не позволяет программисту избегать скуки повторения тех же шаблонных кодовых комбинаций.
  4. , Даже если GOTO является деталью реализации низкого уровня (не всегда случай!) это ниже уровня, что программист должен думать. Сколько программистов балансирует свои персональные чековые книжки в необработанном двоичном файле? Сколько программистов волнуется, о котором сектор на диске содержит конкретную запись, вместо того, чтобы просто обеспечить ключ к механизму базы данных (и сколько путей вещи могли пойти не так, как надо, если бы мы действительно записали все наши программы с точки зрения секторов физического диска)?

Сноски к вышеупомянутому:

Относительно точки 2, рассмотрите следующий код:

a = b + 1
/* do something with a */

В "делают что-то" указывает в коде, мы можем заявить с высокой уверенностью, что a больше, чем b. (Да, я игнорирую возможность незахваченного целочисленного переполнения. Давайте не срывать простой пример.)

, С другой стороны, если код считал этот путь:

...
goto 10
...
a = b + 1
10: /* do something with a */
...
goto 10
...

разнообразие способов добраться до маркировки 10 означает, что мы должны работать намного тяжелее, чтобы быть уверенными в отношениях между a и b в той точке. (На самом деле в общем случае это undecideable!)

Относительно точки 4, целое понятие "движения где-нибудь" в коде является просто метафорой. Ничто действительно не "идет" никуда в ЦП кроме электронов и фотонов (для сбросного тепла). Иногда мы бросаем метафору для другого, более полезного, один. Я вспоминаю обнаружение (несколько десятилетий назад!) язык, где

if (some condition) {
  action-1
} else {
  action-2
}

был реализован на виртуальной машине путем компиляции действия 1 и действие 2 как исключительные стандартные программы без параметров, затем использования единственного кода операции VM с двумя аргументами, который использовал булево значение условия вызвать один или другой. Понятие было просто, "выбирают, что вызвать теперь", а не "идут сюда или идут туда". Снова, просто изменение метафоры.

8
задан willem 5 December 2009 в 07:32
поделиться

2 ответа

Если вы хотите, чтобы они были добавлены и одновременно сдвигались вниз, сделайте следующее:

function prependListItem(listName, listItemHTML){
    $(listItemHTML).hide().prependTo('#' + listName).slideDown('slow');
}

Чтобы действительно сделать то, что вы описали (сдвиньте вниз , затем исчезают) вам понадобится что-то вроде этого:

function prependListItem(listName, listItemHTML){
    $(listItemHTML)
        .hide()
        .css('opacity',0.0)
        .prependTo('#' + listName)
        .slideDown('slow')
        .animate({opacity: 1.0})
}
23
ответ дан 5 December 2019 в 06:09
поделиться

Попробуйте:

$("<li>new item</li>").hide().prependTo("#" + listName).slideDown("slow");

Другими словами:

  • Создать новый элемент списка;
  • Скрыть его (чтобы он не был виден при добавлении в список);
  • Добавить его в начало списка; затем
  • сдвиньте его вниз. Остальные элементы будут перемещаться вниз.
3
ответ дан 5 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: