まず、この質問はこのサイトと他のサイトの両方で以前に尋ねられたことがわかりましたが、回答はすべて自分のシナリオではごみです(完全にゴミがない場合)。 (少なくとも質問の場合:jQuery UI drop event of droppable fires on sortable)、提案はちょうど.sortable
を完全にオフにすることです。これは私がやりたいことではありません。jQuery UIドロップ可能なウィジェットのドロップイベントが2回発生
さて、私は(私がしようとすると、これを把握することができますので、任意のオプションまたはHTML IDが愚か見れば、これは単なるテストのためであるに注意してください)このjqueryのを持っている:
$(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>
は私がsortable
div要素またはそのようなものを重複していない、と私はを理解すると思う「なぜ」(?sortable
はデフォルトでdraggablesのプロパティを取得するため)これが起こっている、私はできませんsそれについては何もしないでください。
問題は、もちろん、それは一度だけ必要な時...
drop: function (event, ui) { alert("done been triggered."); }
が...、二回トリガされていることです。
私はこれらの特定のjqueryウィジェットがすべての問題の価値がないと思うよりも、この問題が複雑なスクリプトの修正を必要とする場合、この問題に対する簡単な解決策があると思います。多分私はちょうど混乱していますか?
フィドルはどうですか? – Itay
@Itay要請:http://jsfiddle.net/dMen8/6/ – VoidKing