Comment faire pour récupérer conteneur parent de l'ID après le tri à l'aide de Jquery sortable?
J'ai balisage suivant et javascript pour le tri de certains éléments. Les articles peuvent être triées dans un bloc ou dans d'autres blocs. Il fonctionne mais j'ai un problème lors de la récupération du bloc correct ID après un élément est déplacé à partir d'un bloc à l'autre.
Par exemple, si je déplacer l'élément 1 dans "Bloc 1", j'obtiens "je suis dans le Bloc= bloc_1" mais si je déplace le Point 1 pour le Bloc 2, je reçois toujours la je suis dans le Bloc 1.
Mais je veux faire le bloc 2 de son conteneur parent. J'ai besoin de récupérer cet id pour que je puisse faire quelques ajax et mise à jour de la db en conséquence.
Pouvez-vous svp m'aider à corriger ce problème??
<div id="blocks_sortable">
<div id="block_1">
<h2>Block 1</h2>
<div class="items_sortable connectedSortable">
<div id="item_1">
<span>Item 1</span></div>
<div id="item_2">
<span>Item 2</span></div>
<div id="item_3">
<span>Item 3</span></div>
</div>
</div>
<div id="block_2">
<h2>Block 2</h2>
<div class="items_sortable connectedSortable">
<div id="item_4">
<span>Item 4</span></div>
<div id="item_5">
<span>Item 5</span></div>
<div id="item_6">
<span>Item 6</span></div>
</div>
</div>
</div>
<script>
$("#blocks_sortable").sortable({ });
$(".items_sortable").sortable({
connectWith: '.connectedSortable'
, forcePlaceholderSize: true
, stop : function(event, ui){
alert("I am in block = "+$(this).parent().attr("id"));
}
}).disableSelection();
</script>
Merci.
OriginalL'auteur user187580 | 2010-04-06
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que le problème est que vous utilisez le mauvais événement. Fondamentalement, ce que je pense qui se passe est que l'événement d'arrêt est déclenché trop tôt ou pour le mauvais objet.
Je voudrais lire les docs Ici et voir si il n'y a plus d'événement approprié pour ce que vous essayez de faire.
Je pense que ce que vous voulez, c'est quelque chose comme la "mise à jour" ou "désactiver" des événements.
Ces deux événements seront déclenche une fois pour chaque "bloc" si vous déplacez un élément à partir d'un "bloc" de l'autre.
Mise à jour va déclencher une seule fois si déplacé dans un bloc
Désactiver sera toujours le feu pour tous les blocs.
Avec la mise à jour, vous pouvez vérifier si l'événement est déclenché dans le "non d'origine" bloc par la vérification de l'interface utilisateur.expéditeur:
Alerte l'id parent UNIQUEMENT lorsqu'un élément est déplacé vers un autre bloc. L'événement se déclenche pour les deux blocs, mais l'alerte n'est indiqué que pour le "non d'origine".
Si vous êtes en utilisant AJAX pour mettre à jour les infos dans une base de données, je soupçonne ce que vous voulez, c'est l'événement à feu pour les deux blocs:
Une fois pour le "original" qui est maintenant manque un élément, et un pour les "nouveaux" qui a maintenant gagné un élément.
Je ne suis pas trop familier avec exactement ce que vous faites ou jQuery UI, donc je ne peux pas être plus précis. Rappelez-vous, les docs sont à votre ami.
Espère que cette aide.
Bonne chance. J'espère que j'ai pu aider certains.
C'est génial, merci!
OriginalL'auteur MisterMister
peut-être de son mieux, au lieu d'utiliser l'attribut id vous identifier les éléments à l'aide de leur index.
donc plus comme
OriginalL'auteur Ali Habibzadeh
Vous pouvez jouer en toute sécurité et ajouter un attribut REL qui contiendra la valeur de l'id parent. Vous aurez besoin d'ajouter un peu de code à maintenir que l'attribut REL lorsque vous déplacez des éléments qui nous entourent.
OriginalL'auteur Ivo Sabev