Bu artık geçti birkaç saatliğine beni rahatsız olmuştur.
Ben bir tablo var. O masanın içinde ben belirli bir veri özniteliği ile yakın, önceki tablo satırının arıyorum. Birazdan jquery sıralanabilir başarılı bir kullanımdan sonra bu aramayı yapıyorum. Ben hemen hemen her şeyi denedim ve her zaman yanlış bir şey ile geliyor.
İşte ben kullanıyorum ne
var newIndex = ui.item.index();
var menuLevel = parseInt($(#menu-table).find([data-menu-nesting=' + newIndex + ']).attr(data-menu-level));
var menuId = $(#menu-table).find([data-menu-nesting=' + newIndex + ']).attr(data-menu-id);
if (menuLevel == 2) {
var findAboveRowName = $(.menu-table-rows[data-menu-nesting=' + newIndex + ']).prev(.menu-table-rows).data(menu-level,1).attr(data-menu-name);
alert(findAboveRowName);
}
if (menuLevel == 3) {
var findAboveRowName = $(.menu-table-rows[data-menu-nesting=' + newIndex + ']).prev(.menu-table-rows).data(menu-level,2).attr(data-menu-name);
alert(findAboveRowName);
}
Esasen, değişken newIndex sıralanmakta olan satırdan itibaren yeni konumunu kapmak gerekiyordu, menuLevel o tablo satırının veri niteliği menü düzeyinde kapmak gerekiyordu ve menuId o tablo satırının başka bir veri niteliği kapma .
Özellikle masa sıralar halinde en yakın önceki menü düzeyinde özellik için bakıyor. 2 'lik bir menü düzeyinde niteliğine sahip bir tablo satırı hareket ettiği takdirde Yani, 1 menü düzeyinde özniteliği ile yakın tablo satırının arıyor.
Gerekirse ben kullanıyorum tam jquery sıralanabilir komut
$(#sortable).sortable({
update: function(event, ui) {
var serial = $('#sortable').sortable('serialize');
var newIndex = ui.item.index();
var menuLevel = parseInt($(#menu-table).find([data-menu-nesting=' + newIndex + ']).attr(data-menu-level));
var menuId = $(#menu-table).find([data-menu-nesting=' + newIndex + ']).attr(data-menu-id);
if (menuLevel == 2) {
var findAboveRowName = $(.menu-table-rows[data-menu-nesting=' + newIndex + ']).prev(.menu-table-rows).data(menu-level,1).attr(data-menu-name);
alert(findAboveRowName);
// $.post(./menu-controller.php, { adjustParent: true, id: menuId, parent: findAboveRowName });
}
if (menuLevel == 3) {
var findAboveRowName = $(.menu-table-rows[data-menu-nesting=' + newIndex + ']).prev(.menu-table-rows).data(menu-level,2).attr(data-menu-name);
alert(findAboveRowName);
// $.post(./menu-controller.php, { adjustParent: true, id: menuId, parent: findAboveRowName });
}
$.ajax({
url: ./menu-controller.php,
type: post,
data: serial,
success: function() {
$(#sortable).load(./menu-manager.php #menu-table, function() {
$.get('./menu-admin.js');
});
},
error: function(){
alert(A problem occurred when moving this menu item. Please try again or contact support.);
}
});
},
handle:'.move-item',
connectWith:'#menu-table',
placeholder: highlight,
containment: parent,
revert: true,
tolerance: pointer,
items: 'tbody > *'
});