Sto provando a creare un sito Web in cui l'utente può trascinare alcuni elementi (un elemento in su div) in altre div sulla pagina. Non è un tavolo o così, solo div da qualche parte sulla pagina.Cambia posizione di div con jquery trascina una goccia
Con html5 trascinare & rilasciare funziona correttamente, ora provo a farlo per i dispositivi mobili. Posso trascinare gli oggetti su div, rilasciarli e bloccare questo dropzone, perché solo un elemento dovrebbe trovarsi in una dropzone. Posso anche trascinare questo elemento su un altro div o da qualche altra parte sulla pagina (le aree trascinabili funzionano solo la prima volta che un div viene rilasciato) se ho fatto un errore ma non posso rilasciare un altro elemento nel div che è ora vuoto ancora.
Come posso abilitare il rilascio in questo Dropzone di nuovo?
Ed è possibile modificare due posizioni di due div se si è trascinati su un altro?
Ecco la parte rilevante del mio codice:
<script type="text/javascript">
$ (init);
function init() {
$(".dragzones").draggable({
start: handleDragStart,
cursor: 'move',
revert: "invalid",
});
$(".dropzones").droppable({
drop: handleDropEvent,
tolerance: "touch",
});
}
function handleDragStart (event, ui) {}
function handleDropEvent (event, ui) {
$(this).droppable('disable');
ui.draggable.position({of: $(this), my: 'left top', at: 'left top'});
ui.draggable.draggable('option', 'revert', "invalid");
}
</script>
<body>
<div id="alles">
<div class="dropzones" id="zone1"><div class="dragzones" id="drag1">Item 1</div></div>
<div class="dropzones" id="zone2"><div class="dragzones" id="drag2">Item 2</div></div>
<div class="dropzones" id="zone3"><div class="dragzones" id="drag3">Item 3</div></div>
<div class="dropzones" id="zone4"><div class="dragzones" id="drag4">Item 4</div></div>
<div class="dropzones" id="zone11"></div>
<div class="dropzones" id="zone12"></div>
<div class="dropzones" id="zone13"></div>
<div class="dropzones" id="zone14"></div>
</div>
</body>
EDIT: Ecco la pagina ora di lavoro: Drag&Drop Task
ci sono molti esempi di trascinamento della selezione non-html5, questo è quello che consiglierei. – nycynik
Ho provato l'esempio minuscolo in Chrome e potrei benissimo rilasciare nuovamente gli oggetti in dropzones vuoti? Cosa mi manca? –
@ ink.robot nop, non funziona. Lascia un oggetto in una custodia vuota. Quindi trascinalo nella posizione originale e prova a trascinare un altro elemento sulla custodia vuota. Non puoi – j0k