Dies wurde beunruhigend mich für die vergangenen paar Stunden jetzt.
Ich habe eine Tabelle. Innerhalb dieser Tabelle ich suche nach der nächsten, vorherige Tabellenzeile mit einem bestimmten Datenattribut. Ich mache diese Suche direkt nach einem erfolgreichen Einsatz von jQuery sortierbar. Ich habe fast alles versucht, und es kommt immer mit der falschen Sache auf.
Hier ist, was ich verwende
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);
}
Im Wesentlichen wird die Variable „newIndex“ soll, nachdem die neue Position der Reihe greifen sortiert werden, wird menuLevel soll das Datenattribut „Menü-Ebene“ diese Tabellenzeile packen, und menuId ist ein weiteres Datenattribut dieser Tabellenzeile erregende .
Es ist speziell auf der Suche nach dem nächsten, vorherigen Attribute Menü-Ebene in den Tabellenzeilen. Also, wenn eine Tabellenzeile mit einem Menü-Ebene Attribute 2 bewegt wird, sieht es für die nächste Tabellenzeile mit einem Menü-Ebene Attribute 1.
Der vollständige jquery sortierbar Skript ich benutze, wenn nötig
$(#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 > *'
});