jQuery UI Sortable: поддержите sortable-helper, так как список изменяется при перетаскивании - PullRequest
3 голосов
/ 29 июня 2011

У меня есть список элементов, и с помощью jQuery UI Sortable я могу перетащить и отсортировать список. Сложность в том, что этот список постоянно меняется. Есть push-запросы, и этот список увеличивается по мере перетаскивания. У меня все работает, кроме случаев, когда пользователь перетаскивает и добавляются новые элементы списка, сортируемый помощник (перетаскиваемый элемент списка) не может быть отсортирован в этом списке в реальном времени. Я в конечном итоге с ошибкой: «Невозможно вызвать метод« insertBefore »нулевого значения». Я попытался вызвать $ ("# sortable"). Sortable ("refresh"), но это, похоже, не влияет на список, так как вы его используете.

<ul id="sortable">
    <li>one</li>
    <li>two</li>
    <li>three</li>
</ul>

Есть ли способ сохранить помощника сортировки, который пользователь перетаскивает при обновлении этого списка в реальном времени?

Спасибо!

1 Ответ

0 голосов
/ 25 июля 2012

Когда вы начнете перетаскивать элемент, вам нужно заблокировать список.Это можно сделать, просто используя переменную, например: var list_locked = 1;, которая проверяется перед добавлением в список других элементов списка.Механизм, который динамически добавляет элементы в список, должен подождать list_locked = 0, прежде чем безопасно добавлять другие элементы.Входящие элементы могут быть сохранены в массиве.Существуют события, которые генерируются пользовательским интерфейсом jQuery, когда пользователь начинает перетаскивание и когда пользователь начинает сортировку списка.Используйте эти события, чтобы узнать, когда заблокировать список.

...