2013-05-26 56 views
2

我有一個嵌套的菜單,它是一個菜單子菜單。我試圖做一個接口與jquery可排序http://jqueryui.com/sortable/#portletsPHP的jQuery更新可排序的嵌套菜單

你可以排序這個工程的菜單,但我想保存更改。我的數據庫看起來是這樣的:

+---------+-----------+------+ 
| item_id | parent_id | name | 
+---------+-----------+------+ 
| 1  | 0   | Home | 
+---------+-----------+------+ 
| 2  | 0   | Test | 
+---------+-----------+------+ 
| 3  | 2   | Bla | 
+---------+-----------+------+ 
| 4  | 0   | Baa | 
+---------+-----------+------+ 

我的排序菜單看起來像

<div class="column"> 
    <div class="portlet"> 
    <div class="portlet-header">Home</div> 
    </div> 
</div> 

<div class="column"> 
    <div class="portlet"> 
<div class="portlet-header">Test</div> 
    </div> 

    <div class="portlet"> 
<div class="portlet-header">Bla</div> 
    </div> 
</div> 

<div class="column"> 
    <div class="portlet"> 
<div class="portlet-header">Baa</div> 
    </div> 
</div> 

我的jQuery的樣子

$(function() { 
    $(".column").sortable({ 
    connectWith: ".column", 
    update: function() { 
    }  

    }); 

    $(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all") 
    .find(".portlet-header") 
    .addClass("ui-widget-header ui-corner-all") 
    .end() 
}); 

我怎樣才能發現新的位置是菜單項的什麼?

回答

2

這應該告訴你的順序。並按照它們在文檔中的順序將其存儲在數組中。

var menu = new Array(); 
var order = 0; 

$(".portlet-header").each(function(){ 
    menu.push($(this).html()); 
    alert(order + ":" + $(this).html()); 
    order += 1; 
}); 
+0

謝謝,但是當我把這個更新的時候,我得到了每個警報兩次,我需要改變什麼,所以他提醒每個菜單項而不是兩次? –

+0

嗯,它不應該像那樣。文檔中的菜單是否兩次?你可以創建一個小提琴,http://jsfiddle.net/ – Maresh