2016-11-01 6 views
0

Ich habe eine Liste von Elementen. Ich möchte einen Klon eines Objekts aus der Liste in eine Tabelle ziehen - so weit, so gut.jQuery UI Draggable - Behalten Drag-Fähigkeit nach dem Drop

Wenn das Element in die Tabelle gezogen wird, möchte ich in der Lage sein, dieses Element in eine andere Zelle in der Tabelle zu ziehen. Ich hoffe, dass jemand dabei helfen kann. Der Code, den ich bis jetzt habe, ist wie folgt: -

$('.drag').draggable({ 
     cursor:'move',  
     helper:'clone' 
}); 

$('.dog_drop').droppable({ 
     drop: handleDropEvent 
    }); 

function handleDropEvent(event, ui) { 
    var draggable = ui.draggable; 
    $(ui.draggable).clone().appendTo($(this)),  
    // ajax in here 
} 

Ich wäre sehr dankbar für jede Beratung, die Sie zur Verfügung stellen können.

Vielen Dank im Voraus Phill

Antwort

1

Sie wollen den neuen beigefügten Artikel zu finden und ziehbar() Funktion darauf laufen.

Zum Beispiel, wenn der .drag Artikel ist ein Link, den Sie folgende tun:

$('.drag').draggable({ 
    find: '.dog_drop', 
    cursor:'move' 
}); 

$('.dog_drop').droppable({ 
    drop: handleDropEvent 
    }); 

function handleDropEvent(event, ui) { 
    var $this = $(this); 
    $this.append(ui.draggable); 

    $('.dog_drop').find('div:last').draggable({ 
     cursor:'move' 
    }); 

    // ajax in here 
} 

Stellen Sie sicher, das letzte Element zu wählen, so dass es mit mehreren Elementen arbeiten kann.

+0

Nabil, das ist ausgezeichnet, vielen Dank für die Zeit zu nehmen, um zu antworten. Das Problem, das ich jetzt habe, ist, dass ich das Element tatsächlich in eine neue Zelle verschieben und nicht klonen wollte. Wenn ich "Klon" zu "Original" ändere, bekomme ich ein sehr merkwürdiges Verhalten. Ich bin mir sicher, dass dies die handleDropEvent-Funktion ist, aber ich habe keine Ahnung, wie ich damit umgehen soll. Jede weitere Hilfe wird sehr geschätzt. – Phill

+0

Sie sind herzlich willkommen @Phill, also möchten Sie in der Lage sein, das Element aus der Liste in cell1 ziehen ... und dann ziehen Sie das gleiche Element aus der ursprünglichen Liste in cell2? Wenn es das ist, was Sie wollen, gibt es zwei Möglichkeiten, dies zu tun ... Sie können weiterhin das Klon-Objekt verwenden und auch das Zurücksetzen verwenden, um das Objekt auf die ursprüngliche Liste zurückzusetzen ... oder Sie können das Objekt in der Liste neu erstellen. Wenn das ist, was Sie suchen, werde ich die Antwort für Sie aktualisieren. –

+0

Hallo Nabil. Ich möchte ein Element aus der Liste in Zelle 1 ziehen. Verschieben Sie dann das Element von Zelle1 nach Zelle2. In diesem Fall verschwindet das Objekt aus Zelle 1 und erscheint in Zelle2. – Phill