この例を見てください。
ドキュメントによると:
helper
完璧に機能するには、「クローン」に設定する必要があります
確かに、削除するhelper: 'clone'
と、ドラッグすると奇妙なことが起こります。
問題は、私が「クローン」の動作に興味がないことです。アイテムをあるリストから別のリストに移動したいのですが。
注:元の(左)リストはソート可能であってはなりません。
何か案は?
私はこれと同じ問題に苦しんでいます。実際にヘルパーを「元の」に設定すると、あらゆる種類のびくびくした奇妙な動作が発生します。
それがあなたの目的に役立つかどうかはわかりませんが、ドラッグの開始/停止イベントとソート可能な更新イベントをリッスンするコードをいくつか作成しました。
ドラッグスタートすると、アイテムはリストから非表示になります。アイテムが他のリスト(ブール値によって決定される)に転送されない場合、アイテムは非表示になりません。ただし、アイテムが転送されると、元のアイテムは削除されます。
$(function() {
var transferred = false;
$('#draggable li').draggable({
connectToSortable: '#sortable',
helper: 'clone',
start: function(event, ui)
{
$(this).hide();
},
stop: function(event, ui)
{
if(!transferred)
$(this).show();
else
{
$(this).remove();
transferred = false;
}
}
});
$('#sortable').sortable({
receive: function(event, ui)
{
transferred = true;
}
});
}); </ p>
jsfiddleの例を変更しました。(http://jsfiddle.net/xD2dW/12/)
もちろん、特定のニーズに合わせてコードを変更することもできますが、少なくともこれが良いスタートになることを願っています。
helper: function(){ //何かをする; }