У меня есть страница с сеткой элементов. Каждый из этих элементов можно перетащить в один из четырех разделов и добавить в этот раздел. Это делается с помощью jQuery и пользовательского интерфейса JQuery с возможностью перетаскивания/удаления.
Первый элемент изотопов можно перетащить на любой из элементов div. Однако 2-й и 3-й элементы изотопов не распознают первый выпадающий div, но при перетаскивании на второй выпадающий div будут добавлены в первый выпадающий div.
4-й и 5-й перетаскиваемые элементы (изотопы) не распознают первый или второй выпадающий элемент div, но при перетаскивании над третьим выпадающим элементом добавляются ко второму выпадающему элементу.
Так что каким-то образом droppable запутался в том, куда сбрасываются предметы.
Когда я комментирую следующий код, перетаскивание работает правильно. Любые идеи относительно того, почему этот код повлияет на выпадающие области??
jQuery('div.container').isotope({ itemSelector: 'div.sub-item', resizesContainer : false, layoutMode : 'fitColumns', getSortData :{ fitOrder : function ($item){ var order, index = $item.index(); if($item.hasClass('sub-item-big') && index % 2) { order = index +1.5; } else { order = index; } return order; } }, sortBy : 'fitOrder' });
--------------- Обновить ------------------
Еще немного поигравшись с этим, я решил добавить «уничтожить» изотоп при начале перетаскивания.
jQuery('div.sub-item').draggable({ helper: function(){ jQuery('div.container').isotope('destroy'); return jQuery(this).clone().appendTo('body'); } })
Когда я запускаю его таким образом, элементы помещаются в правильный контейнер.
В документации по изотопу говорится, что это функция «удалить», с этим есть две проблемы.
1) в документации говорится, что он удаляет «указанные элементы элемента из виджета Isotope и DOM», но я не хочу удалять элемент из виджета или из dom, я просто хочу удалить функциональность изотопов
2) Я получаю сообщение об ошибке «невозможно вызвать методы для изотопа до инициализации, попытка вызова метода удаления» — но в этом случае изотоп был инициализирован, но, возможно, не на клонированном объекте?? Это выше моих способностей, хотя я надеюсь научиться.
Теперь, когда я нашел способ исправить эту ошибку, я мог бы уничтожить изотоп при перетаскивании, а затем повторно инициализировать изотоп после завершения перетаскивания или отпускания предмета, но это кажется неэффективным.