7

Ich versuche ein ziehbares Panel (oben) und ein sortierbares Panel (unten) zu kombinieren.Jquery UI kombinierbar sortierbar und ziehbar

Ziehen funktioniert gut, aber die Sortierung schlägt fehl.

Hier ist meine JS Geige: http://jsfiddle.net/dmUKY/9/

Sowohl Drag'n Drop und sortierbar Funktionen teilt die droppable:drop Funktion. Beim Sortieren von Elementen muss die Funktion das ausgewählte Objekt ersetzen.

drop: function (event, ui) { 
    //alert($(this).parent().html()); 
    //alert($(ui.helper).attr('class')); 
    var obj; 
    if ($(ui.helper).hasClass('draggable')) { 
     //alert('draggable'); 
     obj = $(ui.helper).clone(); 
     obj.removeClass('draggable').addClass('editable') 
     //obj.addClass('droppable'); 
     $(this).parent().append(obj); 

    } 


    //alert($(this).parent().html()); 
} 

Wie sollte ich diese beiden Funktionen kombinieren?

Antwort

4

Ändern Sie Ihren Code sollte dies den Trick:

obj.removeClass('draggable').addClass('editable').removeAttr('style'); 
//obj.addClass('droppable'); 
$(this).append(obj); 

Prüfung an der Geige: http://jsfiddle.net/dmUKY/11/

+0

danke! Wie soll ich vorgehen, wenn es zwei getrennte sortierbare Bereiche gibt? Kann ich Gegenstände zwischen diesen austauschen? JSfiddle: http://jsfiddle.net/dmUKY/11/ – dams

+0

aktualisiert Link: http://jsfiddle.net/dmUKY/16/ – dams

+1

versuchen Sie diese http://jsfiddle.net/dmUKY/18/ – trrrrrrm

15
$("#sortable").sortable({ 
    revert: true, 
    stop: function(event, ui) { 
     if(!ui.item.data('tag') && !ui.item.data('handle')) { 
      ui.item.data('tag', true); 
      ui.item.fadeTo(400, 0.1); 
     } 
    } 
}); 
$("#draggable").draggable({ 
    connectToSortable: '#sortable', 
    helper: 'clone', 
    revert: 'invalid' 
}); 
$("ul, li").disableSelection(); 

DEMO JSFIDDLE

Ich denke, das ist das, was Sie suchen! !