У меня есть несколько DIV с содержимым, которое имеет атрибут weight-weight, который регулярно обновляется через AJAX.Повторная компоновка/сортировка DIV без повторной установки в DOM
Я сортирую их в цикле, где я перебираю новые значения, исходящие из ajax-запроса.
Поскольку вес данных может быть обновлен в любое время до любого значения, заказ может полностью измениться с момента обновления до обновления.
Моя логика сортировки кажется ошибочной (по меньшей мере;)), потому что она сравнивает каждый элемент с его следующим через .next()
, поэтому вам нужно нажать «Сортировать по весу данных» макс. 4 раза для 4 элементов, пока они не будут отсортированы (см. Скрипку ниже).
Важно знать, что сортируемые DIV содержат внешние ресурсы, такие как изображения, видео и т. Д., Поэтому важно, чтобы они перемещались и не воссоздавались, потому что я думаю, что при повторном вставке в DOM оставшиеся ресурсы повторно загружаются, что неприемлемо для моего прецедента.
Как трудно descripte и, возможно, понять, вот моя скрипка:
Update
Хотя главная проблема решена, все еще существует проблема, когда F.E. Youtube-Videos включены, они перезагружаются каждый раз, когда DIVs переупорядочиваются, даже если видео не меняется в DOM. Это а) выглядит странно и б) прерывает видео-игру. Читайте больше о теме, перемещая фреймы в DOM всегда, кажется, заставляют их перезагружать свой контент - как это глупо?
Fiddle обновляется с фиксированным весом данных 1 для YT-видео, поэтому он всегда остается на вершине.
Идеи очень приветствуется !!
В конце концов, почему бы вам не сделать '$ wrapper.append ($ articles)'? –
@AlessandroVendruscolo - Потому что я не умный. (См. Также вступительное предложение моего ответа.) Но да, это должно сработать. – nnnnnn
спасибо! Выглядит хорошо. Если я буду использовать предложение @AlessandroVendruscolo, разве это не помешало бы мне указать, что они должны быть перемещены, а не повторно вставлены? –