Questa domanda ha qualcosa a che fare con questo Nest jQuery UI sortables, ma non ho potuto risolvere il mio problema con esso.JQuery sest ordinabile sdiv divs
Ecco il problema: ho un contenitore principale che contiene elementi, quegli elementi sono div che possono essere elementi o gruppi non raggruppati, che contengono altri elementi. Posso definire nuovi gruppi trascinando il div .multiply-group
e quindi posso trascinare tutto il gruppo in una volta. Ecco il codice:
<body>
<div class="multiply-container">
<div class="row multiply">Item 1</div>
<div class="row multiply">Item 2</div>
<div class="row multiply">Item 3</div>
<div class="row multiply-group"> Group 1</div>
<div class="row multiply">Item 4</div>
<div class="row multiply-group"> Group 2 </div>
<div class="row multiply">Item 5</div>
</div>
<script>
var groupWrap = function(){
$('.multiply-container').children().each(function(index, item){
if($(item).hasClass('multiply-group')){
$(item).nextUntil('.multiply-group').addBack().wrapAll('<div class="locked"></div>');
}
});
};
var updateMultiply = function(){
var $container = $('.multiply-container');
$container.children().each(function(index, item){
if($(item).hasClass('locked')){
$(item).children().each(function(i, elem){
$container.append($(elem));
});
$(item).remove();
}
});
groupWrap();
$('.multiply-container').sortable({
connectWith: '.locked',
helper: 'clone',
placeholder: '.multiply-placeholder',
axis: 'y',
update: function(){
updateMultiply();
}
});
$('.locked').sortable({
connectWith: '.multiply-container, .locked',
helper: 'clone',
axis: 'y',
update: function(){
updateMultiply();
},
receive: function(event, ui){
if($(ui.item).hasClass('locked')){
$(ui.sender).sortable('cancel');
return false;
}
}
});
};
updateMultiply();
</script>
</body>
Ed ecco un violino: https://jsfiddle.net/antoq/n1w6e6ar/2/
Il problema è che ottengo è quando ho trascinare l'ultimo contenitore gruppo fuori dal fondo del contenitore principale si ferma lì, invece di tornare al contenitore principale e ottengo il seguente errore:
Uncaught HierarchyRequestError: Failed to execute 'insertBefore' on 'Node': The new child element contains the parent.
per favore qualcuno può aiutarmi a capire cosa sta succedendo e come risolverlo?
Non vedo alcun problema. Qual è il passo esattamente per riprodurlo? – Thangaraja
Non riesco a riprodurre neanche questo. Quale browser utilizzate? – Ageonix
Riesco a vedere due comportamenti strani: 1) il trascinamento di "Gruppo 2" usando il bordo blu come maniglia spesso fa collassare il contenitore verde; lasciando il gruppo fuori da quel contenitore verde si interrompe l'ordinamento - il gruppo rimane in fondo; 2) trascinando il "Gruppo 2" usando il bordo blu come maniglia e rilasciandolo all'interno di "Gruppo 1", il "Gruppo 2" scompare completamente. –