まず、このサイトと他のサイトの両方でこの質問が以前に尋ねられたことは知っていますが、私のシナリオでは回答がすべてゴミであり (完全にゴミではない場合)、(少なくともここの質問: jQuery UI drop eventでは) sortable でのドロップ可能な火の数)、提案は完全にオフにすることです.sortable
が、これは私がやりたいことではないことは間違いありません。
さて、私はこのjqueryを持っています(オプションやhtml IDがばかげているように見える場合は覚えておいてください。これはテスト用であるため、これを試して理解することができます):
$(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();
});
有効なマークアップは次のとおりです。
<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>
重複する div などはありません。 「なぜ」これが起こっているのかsortable
を理解していると思います(デフォルトでドラッグ可能なプロパティを取得するため)。それについては何もできないようです。sortable
もちろん、問題は...
drop: function (event, ui) { alert("done been triggered."); }
...一度だけ必要なときに、2 回トリガーされています。
この問題には簡単な解決策があると思います。なぜなら、この問題を修正するために複雑なスクリプトを大量に作成する必要がある場合は、これらの特定の jquery ウィジェットに苦労する価値はないと思うからです。おそらく私は混乱しているだけですか?