Первая часть позволяет вам перетащить элемент в сортируемый элемент div, который работает нормально. Затем я хочу, чтобы этот div также стал сортируемым, чтобы я мог перетаскивать в него новые элементы (части).
Эта часть также работает нормально, за исключением тех случаев, когда вы переупорядочиваете элементы (более темные), она не позволит вам вернуть в нее часть, пока вы не переупорядочите их снова или не попробуете вставить ее в один из других элементов и вернитесь к этому.
Это сложно объяснить, но вот скриншот: http://screencast.com/t/Ls2ksVY4Q
Демо находится по адресу: http://jsfiddle.net/9MXWp/
Вот соответствующий код:
$(document).ready(function() {
$('#the-grid').sortable({
tolerance: 'pointer',
update: function(event, ui) {
if( $(ui.item).has('.close').length == 0 ) {
$(ui.item).prepend('<a href="#" class="close" onclick="$(this).parent().remove();">x</a>');
}
$('.part-holder', ui.item).sortable({
tolerance: 'pointer',
update: function(event, ui) {
if( $(ui.item).has('.close').length == 0 )
$(ui.item).prepend('<a href="#" class="close" onclick="$(this).parent().remove();">x</a>');
}
});
}
});
$('#sidebar > ul > li.part').draggable({
helper: 'clone',
connectToSortable: '.part-holder',
addClasses: false
});
$('.drag-element').draggable({
revert: 'invalid',
helper: 'clone',
connectToSortable: '#the-grid',
addClasses: false
});
$('#update-list').click(updateList);
});
Рецепт, который, кажется, дублирует проблему (в FF 3.6):
Перетащите Элемент 1 в область подготовки.
Перетащите Элемент 2 в область подготовки; поместите его перед элементом 1.
Перетащите Часть внутрь Элемент 1 . ☞ Иногда страница не работает прямо здесь. 10 ☣
Перетащите Деталь внутрь Элемент 2 .
Теперь перетащите Элемент 2 , чтобы следовать за Элемент 1 .
☞ Перетащите Деталь внутрь Элемент 1 ; это не сработает. 10 ☣
Перетащите Деталь внутрь Элемент 2 ; это сработает, и теперь Элемент 1 снова принимает части.