अब यह पारित कर दिया कुछ घंटों के लिए मुझे परेशान कर दिया गया है।
मैं एक मेज है। उस तालिका में मैं एक विशिष्ट डेटा विशेषता के साथ निकटतम, पिछली तालिका पंक्ति के लिए देख रहा हूँ। मैं सही jQuery sortable के सफल प्रयोग के बाद यह खोज कर रहा हूँ। मैं लगभग सब कुछ कोशिश की है और यह हमेशा गलत बात के साथ आता है।
यहाँ मैं क्या उपयोग कर रहा हूँ है
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);
}
अनिवार्य रूप से, चर newIndex हल कर दिए जाने के बाद पंक्ति की नई स्थिति हड़पने के लिए माना जाता है, menuLevel कि तालिका पंक्ति के डेटा विशेषता मेनू स्तरीय हड़पने के लिए माना जाता है, और menuId कि तालिका पंक्ति के एक और डेटा विशेषता हथियाने है ।
यह विशेष रूप से तालिका पंक्तियों में निकटतम, पिछले मेनू स्तरीय विशेषता की तलाश में है। तो अगर 2 का एक मेनू स्तरीय विशेषता के साथ एक तालिका पंक्ति में ले जाया जाता है, यह 1 के एक मेनू स्तरीय विशेषता के साथ निकटतम तालिका पंक्ति की तलाश में है।
पूर्ण jQuery sortable स्क्रिप्ट मैं अगर जरूरत उपयोग कर रहा हूँ
$(#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 > *'
});