これをより効率的に行う方法を学ぶために、を改善する方法や私が間違った道を一緒に歩いているなら、私は興味があります。これまでのところ、私が書いたJquery空白の点でソート可能なスタイル関数
、http://jsfiddle.net/mstefanko/LEjf8/9/
これは、私が小規模でそれを望むものを基本的に処理します。
いくつかのバグがあり、これは書かれているほど良いと自信を持っていません。jquery ui sortableにラッチしようとしないのは馬鹿かもしれません。しかし、単純なリストなしでこれを行う必要があるため、複数のドラッグアンドドロップを含むようにこれを拡張したいと思っていたのですが、これを実現するために必要なことは、これらの作業のようなソート機能。
問題児、
これは、すべての(ドロップ可能なのオーバーイベントで呼び出される関数である)
私は
var emptyHolders = [];
$('.pipeline-holder').each(function(){
if($(this).hasClass('holder-empty')){
var eid = $(this).attr('id');
emptyHolders.push(eid.substring(14));
}
});
CIDがある空のスポットのアレイを持っていますあなたが上に乗っているドロップ可能な要素なので、次の空きスロットを見つけることができます。
リストの下に空のスロットがある場合は、forループを使用して、DOMの周りを移動して要素を削除するために必要なスペースを作ります。
if (nextEmpty != null) {
var moveMe = nextEmpty -1;
for (var i = moveMe; i >= cid; i--) {
var nextcount = i + 1;
var me = $('#pipeline-rank-' + i);
var next = $('#pipeline-rank-' + i).parents('.pipeline-rank-row').next().find('.pipeline-holder');
var pid = $('#pipeline-rank-' + i).find('.content-wrapper').attr('id');
next.append($('#pipeline-rank-' + i).find('.content-wrapper'));
next.removeClass('holder-empty');
next.siblings('.remember-my-position-hover').html(pid);
}
$('#pipeline-rank-' + cid).addClass('holder-empty');
}
1は、リストのさらに下がない場合、私はにアップアイテムをプッシュするドロップ可能上記スポットがあるかどうかを確認するために、逆に同じことを行います。
ご迷惑をおかけして申し訳ありません。
この "作業中の"コードを改善する方法だけで、解決できない問題がない場合は、http://codereview.stackexchange.com –