ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
334
334
EMPFEHLEN
-
Tach auch,
Folgendes: ich verwende jQuery-UI für ein kleines Item-Slot-System.
Angenommen, ich habe zehn leere Slots und drei Items, die ich je nach Laune innerhalb der Slots herumschieben kann.
HTML-Code:<div class="slot ui-droppable"> <div class="item yellowPo ui-draggable" style="position: relative;"></div> </div> <div class="slot ui-droppable"> <div class="item bluePo ui-draggable" style="position: relative;"></div> </div> <div class="slot ui-droppable"> <div class="item greenPo ui-draggable" style="position: relative;"></div> </div> <div class="slot ui-droppable"></div> <div class="slot ui-droppable"></div> <div class="slot ui-droppable"></div> <div class="slot ui-droppable"></div> <div class="slot ui-droppable"></div> <div class="slot ui-droppable"></div> <div class="slot ui-droppable"></div>
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
function initInventory() { $('.item').draggable({ cursor: 'move', containment: 'document', revert: 'invalid', stack: '.item' }); $('.slot').droppable({ accept: '.item', hoverClass: 'hovered', drop: handleDropEvent }); } function handleDropEvent(event, ui) { var draggable = ui.draggable; if($(draggable).hasClass("item")){ draggable.position({of: $(this), at: 'center center'}); } }
Jetzt möchte ich verhindern, dass ich in einen Slot mehr als ein Item legen kann, und ich weiß nicht, wie. Mit dem geposteten Code kann ich alle drei Items übereinander in einen Slot legen.
Ich kann zwar den verwendeten Slot für weitere Ablagen deaktivieren:
Code :1 2 3 4 5 6 7
function handleDropEvent(event, ui) { var draggable = ui.draggable; if($(draggable).hasClass("item")){ draggable.position({of: $(this), at: 'center center'}); $(this).droppable({disabled: true}); } }
aber finde keine Möglichkeit, ihn zu reaktivieren, wenn er wieder frei ist. Ein einmal benutzter Slot wird danach unbrauchbar. Wohin also mit einem?Code :1
$(this).droppable({disabled: false});
Ich bräuchte eine Art gedropptes-Item-wurde-soeben-von-mir-entfernt-Event für die Slots.
Jemand eine Idee?Für die Übereinstimmung von Niederschrift und Hirninhalt.
-
Also ich geb zu ich hab wirklich wenig Verständniss für Javascript bisher (Habs bisher meist mit PHP lösen können).
Ich würde auf den ersten Blick an ein else denken.
Code :1 2 3 4 5 6 7 8 9 10 11
function handleDropEvent(event, ui) { var draggable = ui.draggable; if($(draggable).hasClass("item")){ draggable.position({of: $(this), at: 'center center'}); $(this).droppable({disabled: true}); } else { draggable.position({of: $(this), at: 'center center'}); $(this).droppable({disabled: false}); } }
Wenn das Unsinn ist dann einfach ignorieren
-
Unsinn nicht, aber es funktioniert nichtWenn das Unsinn ist dann einfach ignorieren

Das Drop-Event wird ja bei jeder Ablage ausgelöst. Und abgelegt wird immer ein Element der Klasse item. Der else-Zweig würde also gar nicht durchlaufen.
Ich brauche also entweder ein Event für die Droppables, dass beim Entfernen eines Draggebels feuert, oder eines für die Draggables, das beim oder nach dem erneuten Platzieren feuert.
Das ständige Durchrödeln durch eine Schleife würd ich dabei gern vermeiden, sonst wärs' kein Problem.Für die Übereinstimmung von Niederschrift und Hirninhalt.
Ähnliche Themen
-
Drag und Drop mit JQuery
Von t90 im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 20.06.11, 21:20 -
JQuery Listen sortieren/Drag/Drop?
Von bernd00 im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 12.10.10, 17:23 -
[jQuery] Drag and Drop
Von newwarrior im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 25.06.10, 11:56 -
[jQuery] Drag & Drop & Img & Divs
Von newwarrior im Forum Javascript & AjaxAntworten: 5Letzter Beitrag: 09.03.10, 23:40 -
[jQuery] Drag and drop & event.pageY
Von tobee im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 16.01.10, 22:07





Zitieren
Login





