Suppression d'Éléments de Jquery UI Sortable
J'essaie de trouver la bonne façon de supprimer des éléments à partir d'une INTERFACE utilisateur de JQuery liste Triable. J'ai créé un JSfiddle illustrer mon problème.
En gros, j'ai un couple de rappels autour de JQuery UI sortable widget, et je veux que ces rappels à être exécuté dès que j'ai supprimer un élément à partir du widget. Quelle est la façon correcte de le faire? Parce que "$.supprimer" ni "$.détacher" semble fonctionner.
EDIT 1: je ne suis pas à la recherche d'un correctif sur mon problème, mais plus une explication de la façon dont le JQuery UI Sortable fonctionne de la liste, tandis que les réponses ci-dessous clairement résoudre le problème. Je ne pense pas que c'est un propre façon de faire. Je pense que JQuery UI Sortable devez être conscient que lorsque vous supprimez un élément de la liste qui est entre les deux éléments, vous devriez être besoin d'une re-trier
Si vous prenez la note ci-dessous la fonction n'est exécutée lorsque j'appelle le supprimer sur un élément.
$(document).ready(function(){
$('ul').sortable({
stop: function(event, ui) {
updatePosition();
}
});
$('.remove').on('click', function(e){
$(".delete").remove();
});
});
function updatePosition(){
$('ul li').each(function(i){
$(this).html(i + 1);
});
}
OriginalL'auteur Gotjosh | 2013-10-23
Vous devez vous connecter pour publier un commentaire.
Dans votre supprimer gestionnaire d'événement, il vous suffit d'inclure un appel à
updatePosition
après$(".delete").remove();
Cela ne couvre pas tout-et-tout temps les éléments sont supprimés de votre liste: si c'est vraiment votre intention, alors vous aurez à aller avec quelque chose comme @pmich35 de réponse (bien qu'il ne signifieupdatePosition
sera appelée pour chaque$.remove
appel, à n'importe quel élément dans votre liste ou non, à partir de là - un peu exagéré)Votre mis à jour le violon.
EDIT: Il n'y a actuellement pas de "supprimer" l'événement dans
$.sortable
qui convient à votre but - la suppression de l'événement qui est il ne couvre que le cas spécifique de l'utilisateur en faisant glisser un élément de la liste à partir de votre liste à une autre liste triable.Sortable
ne fait pas de garder une trace de vos éléments de liste à tous les temps - il ne se soucie pas si vous programmaticly ajouter ou supprimer des éléments - il ne facilite à l'utilisateur de déplacer des événements. Il ne fait pas effectuer des "tri", et toutes les apparences de tri sont juste la façon jQuery tire des éléments du DOM de la forme des objets (si vous le cache de la liste des éléments dans un objet jQuery, puis faites-le glisser-trier les éléments, le cache avais éléments de la liste de " l'ordre sera le même qu'avant). Depuis le " tri " n'est qu'une illusion de la fonction, il ne peut pas suivre activement ajoute/supprime.Il y a une autre solution possible: joindre
updatePosition
à laul
élément lui-même:Qui a également atteindre votre objectif, mais encore n'est-ce pas la manière "propre", vous êtes désireux. Le "supprimer" de l'événement sur des éléments d'ordre général a été ajouté dans l'INTERFACE utilisateur de jQuery 1.10.3 (donc jsfiddle de ne pas le couvrir, ils ne sont que 1.9.2), et fera appel
updatePosition
chaque fois qu'un courant ou futurs élément de la liste est supprimée (à partir de la DOM - traîné les absorptions sont toujours pris par$.sortable
'supprimer un événement).OriginalL'auteur Brian North
vous pouvez remplacer la fonction de suppression, althougth il n'est pas très optimisé:
Tout cela se sent beaucoup plus propre. J'ai l'impression que ce n'est pas pourquoi je devrais être en train de faire. JQuery UI Sortable devez être conscient de quand triable élément est supprimé? C'est peut-être manquant dans la bibliothèque et un pull request c'est ce qui devrait être fait? @pmich35
en fait, cette solution n'est pas la plus propre, la liaison sur supprimer l'événement est discuté ici: stackoverflow.com/questions/2200494/... les solutions proposées il existe une manière plus propre que la mienne. Pour répondre à votre question, Idon pense pas que la suppression d'un élément déclencheur de la triable de rappel depuis la commande des objets rester droite lors de la suppression d'un objet.
J'ai mis à jour ma question avec qui je suis actuellement à la recherche d'.
OriginalL'auteur Pierre Michard