Проблема перемещения нового элемента в новый список, пока я не обновлю страницу - PullRequest
2 голосов
/ 01 октября 2011

Я использую шаблон jquery для динамического создания списка (столбцов), который имеет различные элементы (они также добавляются динамически), а также создал плагин, который помогает перемещать элементы из одного списка во 2-й или 3-й, т. Е. С помощью jquery ui drag & удалить, но возникла проблема при удалении элемента в недавно добавленный список.

Сценарий: когда я нажимаю кнопку добавления списка, он создает список на странице. Поэтому я добавил список с именем «list1», и у каждого списка есть кнопка для добавления элементов в список, поэтому, дважды нажав на него, я добавил 2 элемента в «list1». И предметы подвижные / перетаскиваемые / выпадающие. Теперь добавлен второй список с именем «list2». Поэтому, если я пытаюсь переместить элемент из «list1» в «list2», он этого не делает, вместо этого элемент перемещается в «list1». Это происходит без перезагрузки страницы, но если я обновлю страницу и сделаю то же самое действие, теперь элемент можно переместить в «list2». Вот код, который я использую для перетаскивания (следующий код помещен в мой плагин jquery):

var id = $('.' + options.dropID);
            var id0 = options.dropID;

            $('.' + options.dropID).sortable({

                helper: "clone",
                revert: "invalid", // go back to original droppable when drop outside drop area
                connectWith: '.' + options.dropID,
                over: function (event, ui) {

                    // may be usefull
                    var sortableElement = this;

                    var dataToSave = {
                        name: ui.item.text(),
                        objid: ui.item.attr('title'), // id has changed for array so use original id stored in title
                        thisID: $(sortableElement).attr('id'),
                        array: $(sortableElement).sortable("serialize")
                    };

                    // save the new data
                    saveData(dataToSave);
                }
            });

поэтому я заметил поведение, которое здесь отличается: - добавлен элемент без загрузки страницы, добавлен следующий div

<div id="337" class="cardItem droppable">         </div>

, поэтому, если я попытаюсь добавить элемент здесь, это не позволит мне.

  • после загрузки страницы, он изменяет вышеприведенный div на:

добавляет атрибут сортировки к атрибуту класса. Поэтому я пытаюсь найти, как или когда это ui-sortable добавляется, это делается с помощью сортируемого метода jquery.

и при загрузке страницы я вызываю плагин так:

    <script type="text/javascript">
        $(window).bind("load", function () {
            $('.laneList').ListDragandDrop();
        });
    </script>

Я также вызываю ListDragandDrop () после добавления нового списка или элемента, но он не добавляет ui-sortable в div, и мне нужно обновить страницу, чтобы она могла сделать «list2» выпадающим. Можете ли вы сказать мне, что я делаю неправильно или что я должен изменить, чтобы это работало.

1 Ответ

1 голос
/ 26 января 2012

Похоже, что сортировка JQuery была исправлена ​​в последней версии для элементов, добавленных после создания.Если проблема по-прежнему возникает, добавьте jsfiddle, чтобы мы могли помочь с отладкой.

...