- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Più ui.sortable dinamici
-
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?
-
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]);
}
});
});