2009-05-03 2 views
0

ich eine Klasse von Elementen machen ziehbar wie dieszieht aus html Körpern/div/alles

jQuery(".drag").draggable(); 

jQuery(".drop").droppable({ 
accept: ".drag", 

drop: function(ev, ui) { 
//do stuff with dropped data 

    } 
}); 

jetzt das Problem ist, ich bin in der Lage, die Elemente aus dem Körper zu ziehen, und die ganzen html. Wie beschränke ich den Bereich, in dem es ziehbar ist?

Antwort

4

http://docs.jquery.com/UI/Draggable#option-containment

Beschränkt innerhalb der Grenzen des angegebenen Elements oder einer Region zu ziehen. Mögliche Zeichenfolgenwerte: 'Eltern', 'Dokument', 'Fenster', [x1, y1, x2, y2].

Beispiel:

Initialisieren einen ziehbar mit der Containment-Option angegeben.

$('.selector').draggable({ containment: 'parent' }); 

Oder falls das Problem, dass die ziehbar überall platziert werden können:

http://docs.jquery.com/UI/Draggable#option-revert

Wenn auf true gesetzt, wird das Element in seine Startposition zurückkehrt, wenn ziehen stoppt. Mögliche Zeichenfolgenwerte: 'gültig', 'ungültig'. Wenn diese Option auf "Ungültig" gesetzt ist, wird die Zurücksetzung nur ausgeführt, wenn das ziehbare Objekt nicht auf einem abgelegten Objekt abgelegt wurde. Für gültig, es ist umgekehrt.

Und schließlich, ich sehe Sie nicht den Umfang der ziehbar Einstellung (bearbeiten: Aber das wird nicht Ihr Problem beheben, die anderen 2 Dinge oben sollte):

http://docs.jquery.com/UI/Draggable#option-scope

Wird verwendet, um Gruppen von ziehbaren und absenkbaren Elementen zu gruppieren, zusätzlich zur Option accept von droppable. Ein ziehbares Objekt mit demselben Bereichswert wie ein deaktivierbares Objekt wird von dem auszuschließenden Objekt akzeptiert.

Beispiel:

Initialisieren eines ziehbar mit dem Umfang Option angegeben.

+0

Hinzufügen containment: 'Eltern', Option behoben das Problem! Danke vielmals! – mark