Po pierwsze, wiem, że to pytanie zostało zadane wcześniej, zarówno na tej stronie, jak i na innych stronach, ale odpowiedzi są tylko śmieciami do mojego scenariusza (jeśli nie są to całkowicie śmieci) oraz (przynajmniej na pytanie tutaj: jQuery UI drop event of droppable fires on sortable), propozycja polega na całkowitym wyłączeniu .sortable
, co z pewnością nie jest tym, co chcę zrobić.Zdarzenie upuszczania kropli jQuery UI droppable widget wypalanie dwa razy
Dobra, mam tego jQuery (należy pamiętać, jeśli wszelkie opcje lub identyfikatory html wyglądać głupio, to tylko do testów, więc mogę spróbować i rysunek to):
$(function() {
$("#sortable").sortable({
revert: true
});
$("#draggable, #draggable2").draggable({
connectToSortable: "#sortable",
helper: "clone",
revert: "invalid"
});
$("#sortable").droppable({
drop: function (event, ui) { alert("done been triggered."); }
});
$("ul, li").disableSelection();
});
I tu jest ważny znaczniki:
<div class="objectPaletteHolder">
<ul>
<li id="draggable" class="ui-state-highlight">Drag me down</li>
<li id="draggable2" class="ui-state-highlight">Drag this down, too</li>
<li id="draggable2" class="ui-state-highlight">Drag this down, also</li>
<li id="draggable2" class="ui-state-highlight">Drag this down, as well</li>
<li id="draggable2" class="ui-state-highlight">Drag this down, too</li>
<li id="draggable2" class="ui-state-highlight">Drag this down, too</li>
<li id="draggable2" class="ui-state-highlight">Drag this down, too</li>
<li id="draggable2" class="ui-state-highlight click">Drag this down, click</li>
<li id="draggable2" class="ui-state-highlight clicky">Drag this down, clicky</li>
</ul>
</div>
<div class="editContainer">
<ul id="sortable">
<li class="ui-state-default">Item 1</li>
<li class="ui-state-default">Item 2</li>
<li class="ui-state-default">Item 3</li>
<li class="ui-state-default">Item 4</li>
<li class="ui-state-default">Item 5</li>
</ul>
</div>
nie mam nakładających sortable
div lub coś podobnego, i myślę, że rozumiem „dlaczego” tak się dzieje (? bo sortable
dostaje draggables właściwości domyślnie), po prostu nie mogę s Zrobić cokolwiek na ten temat.
Problem, oczywiście, jest to, że ...
drop: function (event, ui) { alert("done been triggered."); }
... jest uruchamiany dwa razy, gdy jest ona potrzebna tylko raz.
Sądzę, że byłoby proste rozwiązanie tego problemu, ponieważ gdyby ten problem wymagał mnóstwa złożonych skryptów do naprawienia, wtedy uważałbym, że te konkretne widżety jquery nie byłyby warte wszystkich kłopotów. Być może jestem po prostu zdezorientowany?
Co z skrzypcami? – Itay
@Itay Zgodnie z życzeniem: http://jsfiddle.net/dMen8/6/ – VoidKing