Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [jQuery] 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 id='pos_<?=id_elemento?>'>Elemento2
    <li id='pos_<?=id_elemento?>'>Elemento3
    ecc...[/list]


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

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


    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[*] 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[$i]?>).sortable({
    opacity:0.5,
    axis: "y",
    update: function(event,ui){
    var itemOrder = $("".sortable" + <?=$id_elementi[$i]?>").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?

  2. #2
    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]);
    }
    });
    });

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.