2010-06-25 7 views
1

J'ai un élément triable jQuery et un autre élément déplaçable. Avec l'événement de réception triable, j'obtiens le nouvel objet inséré et lance une requête ajax pour l'écrire dans la base de données. Mais ce serait bien d'avoir aussi la bonne position du nouvel élément. Quand je tire triable ("serialize") sur l'événement de réception, le nouvel élément n'est pas dans la chaîne. comment puis-je trouver la position de l'élément inséré?jQuery .sortable + receive Evénement: récupère la position de l'élément inséré


Draggable:

<div id="docP1" class="docPopC">'; 
    for($x = 10; $x<30; $x++){ 
     if($block_ele[$x]) 
      echo '<p id="b_'.$x.'" class="doc_inhalt_popup">'.$block_ele[$x].'</p>'; 
    } 
echo ' 
</div> 

Sortable:

<div id="aktiv"><input type="hidden" value="xx" /></div> 

jQuery:

$("#aktiv").sortable({ 
connectWith: '#aktiv', 
forcePlaceholderSize: true, 
items: 'div.block', 
receive: function(event, ui){ 
    var nblock = ui.item.attr("id").split("_"); 

    $.get('inc_dokumente.php', { 
     index : 'n256', 
     aktiv : $("#aktiv input:first").val(), 
     id : rel, 
     block: nblock[1] 
    }, function(data){ 
     load_bloecke(); 
    }); 
}, 
update: function(event, ui){ 
    $.get('inc_dokumente.php', { 
     index : 'n257', 
     aktiv : $("#aktiv input:first").val(), 
     id : rel, 
     sort: $("#aktiv").sortable("serialize") 
    }, function(data){ 
     if(data) alert(data); 
     load_bloecke(); 
    }); 
} 
}); 

$(".docPopC p").draggable({ 
    connectToSortable: '#aktiv', 
    helper: 'clone', 
    revert: 'invalid', 
    zIndex: 9999999, 
    appendTo: 'body' 
}); 
+0

rien? S'il vous plaît;) – TorbenL

+0

S'il vous plaît envoyer un code. Sans le voir, je suppose que l'ID de l'élément déposé dans la zone de tri ne correspond pas au format 'setname_number' requis. –

Répondre

0

Le problème est cette option lors de la déclaration #aktiv comme triables

items: 'div.block' 

Avec cela, vous disent que seul divs avec bloc de classe devrait être considérée sortable à l'intérieur #aktiv, donc quand vous faites $("#aktiv").sortable("serialize"), jQuery n'évalue pas l'élément que vous laissiez tomber dedans, car il est un élément p. Si tel est le cas, alors vos nouveaux chuté articles ne seront pas non triables avec les autres éléments (les div.block s), de sorte que vous fixons plusieurs problèmes)

Solutions possibles:

  • Make #aktiv envisager l'élément p un triables (items: 'div.block, p.doc_inhalt_popup)
  • Faites les p éléments que vous faites glisser dans divs avec classe block
    • (vous pouvez sauter donner la DRA bloc de classe ggable dans votre code HTML et au lieu d'ajouter avec jQuery lorsque vous recevez l'article)