сортируемый и перетаскиваемый — отменить, если элемент уже находится в сортируемом

Имея небольшую точку беспокойства ...

У меня есть перетаскиваемый элемент, который можно поместить в сортируемый список. В идеале я хотел бы предотвратить перетаскиваемое событие, создающее заполнитель в сортируемом, если сортируемый уже содержит элемент с соответствующим именем класса перетаскиваемого.

Не повезло с таким взглядом на удаление перетаскиваемого после того, как он был помещен в сортируемый список, используя:

beforeStop: function(event,ui)
            {
                var $this = ui.item;
                var person = $this.attr('class').replace(/(.)*a\-(\d*)(.*)/i,'$2');
                if ($this.siblings('.a-'+person).length != 0)
                {
                    $this.remove()
                }

К сожалению, это делает первоначальный перетаскиваемый элемент больше не перетаскиваемым (я могу захотеть переместить его в другой сортируемый на странице, поэтому не могу этого сделать!) И не уверен, что опция beforeStop является наиболее подходящей для этого.

Любая помощь, которую вы могли бы предложить, будет очень признательна.


person Ian Wood    schedule 17.08.2010    source источник


Ответы (1)


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

http://jqueryui.com/demos/droppable/#accepted-elements

person Quasipickle    schedule 17.08.2010
comment
на самом деле проблема здесь не в этом - больше в том, что я мог бы указать параметр connectToSortable при запуске перетаскивания или иметь возможность удалить элемент, вставленный в сортируемый список, с уничтожением исходного перетаскиваемого объекта (мог бы справиться с этим, если бы я мог включить его снова)... - person Ian Wood; 17.08.2010
comment
Я не понимаю, почему это принятый ответ, тем более что вопрос был о сортировке, а не о сбросе. - person NPC; 17.01.2012