• User

    Più ui.sortable dinamici

    Ciao a tutti,
    ho questo problema da risolvere:

    in una pagina php genero dinamicamente 3 elenchi ( con un numero variabile di elementi ) il risultato è questo:

    <ul class="sortslide" id="sortslide1">
    <li id='pos_<?=id_elemento?>'>Elemento1</li>
    <li id='pos_<?=id_elemento?>'>Elemento2</li>
    <li id='pos_<?=id_elemento?>'>Elemento3</li>
    ecc...
    </ul>

    <ul class="sortslide" id="sortslide2">
    <li id='pos_<?=id_elemento?>'>Elemento1</li>
    <li id='pos_<?=id_elemento?>'>Elemento2</li>
    <li id='pos_<?=id_elemento?>'>Elemento3</li>
    <li id='pos_<?=id_elemento?>'>Elemento4</li>
    <li id='pos_<?=id_elemento?>'>Elemento5</li>
    ecc...
    </ul>

    <ul class="sortslide" id="sortslide3">
    <li id='pos_<?=id_elemento?>'>Elemento1</li>
    ecc...
    </ul>

    il mio problema è riuscire a gestire i drag and drop degli elementi nel document.ready in maniera separa per ogni ul
    ho scritto nel document ready una roba di questo tipo:

    $(document).ready(function(){
    $( ".sortslide" ).each(function() {
    myid=$(this).attr('id');
    $("#" + myid).sortable({
    opacity:0.5,
    axis: "y",
    update: function(event,ui){
    var itemOrder = $("#" + myid).sortable('serialize');
    alert(itemOrder);
    }
    });
    });

    ma l'alert mi ristorna sempre il valore dell'ultimo <li> dell'ultimo elemento.

    Ho anche provato a mettere un ciclo for (php) nel document ready, tipo:

    $(document).ready(function(){
    <?
    for($i=0;$i>=count($id_elementi);$i++){

      $(".sortable" + <?=$id_elementi*?>).sortable({
    	opacity:0.5,
    	axis: "y",
    	update:  function(event,ui){
    		var  itemOrder = $("".sortable" + <?=$id_elementi*?>").sortable('serialize');
    		alert(itemOrder);
    	}
    });	 
    

    }
    ?>
    });

    ma oltre ad essere una roba che non mi piace per niente, non mi da alcun risultato.

    mi aiutate a risolvere il problema?


  • User

    Ma quanto sono stupido???

    ecco la soluzione per i posteri:

    $(document).ready(function(){
    slide=0;
    var itemOrder = new Array();
    $( ".sortslide" ).each(function() {
    slide++;
    $(this).sortable({
    opacity:0.5,
    axis: "y",
    update: function(event,ui){
    itemOrder[slide] = $(this).sortable('serialize');
    alert(itemOrder[slide]);
    }
    });
    });