2009-06-05 12 views
1

Ich versuche, mehrere Listen in der Hauptliste zu verschachteln. Ziel ist es, das Menü und die Untermenüs zu organisieren.jquery sortierbar> verschachtelt uls

Die html:

<ul id="pages_0" class="sortable-list"> 
    <li id="page_14">home 
    <ul id="pages_14" class="sortable-list"> 
     <li id="page_21">nieuwsarchief</li> 
     <li id="page_19">waarom bouwelement</li> 
     <li id="page_20">vacatures</li> 
    </ul> 
    </li> 
    <li id="page_23">ondersteuning 
    <ul id="pages_23" class="sortable-list"> 
     <li id="page_24">brochures</li> 
     <li id="page_25">constructie</li> 
    </ul> 
    </li> 
    <li id="page_18">producten</li> 
    <li id="page_26">contact</li> 
    <li id="page_28">referenties</li> 
    <li id="page_11">projectaanpak 
    <ul id="pages_11" class="sortable-list"> 
     <li id="page_15">advies</li> 
     <li id="page_13">productie</li> 
     <li id="page_12">tekenwerk</li> 
    </ul> 
    </li> 
</ul> 

Aktuelle Code:

 
    $(".sortable-list").sortable({ 
     update: function() { 
      $.post('/pages/order/0/, $('#pages_0').sortable("serialize", {key: 'pages_0[]'})) 
     } 
    }); 
    $(".sortable-list").disableSelection(); 

Allerdings, wenn ich diesen Satz, der var, die gesendet wird, ist 'pages_0' natürlich.

Also, was ich versuche:

 
    $('ul.sortable-list').each(function() { 
     pid = ''; 
     pid = $(this).attr('id').split('_'); 
     pid = pid[1]; 
     alert(pid); 
     $('#pages_'+pid).sortable({ 
      update: function() { 
       $.post('/pages/order/'+pid, $('#pages_'+pid).sortable("serialize", {key: 'pages_'+pid+'[]'})) 
      } 
     }); 
     $('#pages_'+pid).disableSelection(); 
     alert(pid); 
    }); 

jedoch mein Problem: in meinem Fall: wenn ich die zweite jquery verwenden, wenn ich sort i get '11' (von pages_11, die letzten ul). Ich möchte natürlich die ID des Elternteils. Irgendwelche Ideen, um das zu lösen? Danke!

Antwort

2

Es sei denn, Sie qualifizieren pid mit var es wird eine globale Variable sein und es wird den letzten Wert für alle Update-Funktionen zugewiesen haben.

Versuchen Sie folgendes:

$('ul.sortable-list').each(function() { 
    var pid = $(this).attr('id').split('_')[1]; 
    alert(pid); 
    $('#pages_'+pid).sortable({ 
     update: function() { 
      $.post('/pages/order/'+pid, $('#pages_'+pid).sortable("serialize", {key: 'pages_'+pid+'[]'})) 
     } 
    }); 
    $('#pages_'+pid).disableSelection(); 
    alert(pid); 
}); 
+0

Sie soooo viel danken !!! Du bist mein Lebensretter !!! Danke!!! und danke für die Lektion :) –

Verwandte Themen