Aby dowiedzieć się, jak to zrobić w bardziej efektywny sposób, jestem ciekawy pomysłów, jak to poprawić lub czy idę źle razem.Jquery Sortowalna funkcja stylu z pustymi miejscami
Dotychczas pisałem, http://jsfiddle.net/mstefanko/LEjf8/9/
uchwyty to w zasadzie to, co chcę go na małą skalę.
Jest kilka błędów i nie mam całkowitej pewności, że jest to tak dobre, jak można napisać, może być idiotą, bo nie próbuje się zatrzasnąć na jquery ui sortable. Ale z koniecznością zrobienia tego bez prostej listy przedmiotów, a także z chęcią rozszerzenia tego, tak aby obejmowała wielokrotne przeciąganie i upuszczanie, chciałem przynajmniej przejrzeć to, co musiałem zrobić, aby to się stało, nawet jeśli było po prostu dowiedzieć się, jak to zrobić. funkcje sortowania, takie jak te.
Problem dziecko,
To wszystko jest w funkcję o nazwie na razie na części droppable()
Mam tablicę pustych plam
var emptyHolders = [];
$('.pipeline-holder').each(function(){
if($(this).hasClass('holder-empty')){
var eid = $(this).attr('id');
emptyHolders.push(eid.substring(14));
}
});
cid jest element, którego nie można pominąć, więc znajduję następny otwarty slot przy użyciu
Jeśli w dolnej części listy znajduje się puste miejsce, używam pętli for, aby przesuwać elementy wokół DOM, aby uzyskać miejsce potrzebne do upuszczenia elementu.
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');
}
Jeśli nie ma jednej dalej w dół listy, robię to samo w drugą stronę, by sprawdzić, czy jest spot powyżej droppable do pchania się do przedmiotów.
Wszelkie przemyślenia są niezwykle cenne!
Jeśli naprawdę masz pytanie, jak poprawić ten "działający" kod i nie masz konkretnego problemu, którego nie możesz rozwiązać, możesz rozważyć http://codereview.stackexchange.com –