Erstens, ich weiß, diese Frage vor gefragt wurde, die beide in dieser Seite und andere, aber die Antworten sind alle Müll für mein Szenario (wenn sie nicht ganz Müll), und (zumindest für die Frage hier: jQuery UI drop event of droppable fires on sortable), ist der Vorschlag nur .sortable
ganz auszuschalten, was die meisten ist sicherlich nicht das, was ich tun möchte.jQuery UI Drop-Ereignis von abwerfbaren Widget Brennen zweimal
Okay, ich habe diese jquery (denken Sie daran, wenn alle Optionen oder HTML-IDs albern aussehen, das ist nur zum Testen, damit ich versuchen kann und diese heraus):
$(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();
});
Und hier ist die gültig Auszeichnungs:
<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>
ich habe keine sortable
divs oder so etwas überlappen, und ich glaube, ich verstehe ‚warum‘ dies geschieht (? weil sortable
draggables Eigenschaften standardmäßig bekommt), ich kann es einfach nicht s Eem, etwas dagegen zu tun.
Das Problem ist natürlich, dass die ...
drop: function (event, ui) { alert("done been triggered."); }
... wird zweimal ausgelöst wird, wenn es nur einmal benötigt wird.
Ich würde denken, dass es eine einfache Lösung für dieses Problem geben würde, denn wenn dieses Problem eine Reihe von komplexen Scripting zu beheben benötigt, würde ich denken, dass diese bestimmten Jquery Widgets nicht den ganzen Ärger wert wären. Vielleicht bin ich nur verwirrt?
Wie wäre es mit einer Geige? – Itay
@Itay Wie gewünscht: http://jsfiddle.net/dMen8/6/ – VoidKing