Merci pour toute l’aide que vous pourrez fournir! Actuellement, j’utilise un code sortingable sur l’interface utilisateur pour permettre aux utilisateurs de déplacer les éléments de haut en bas dans l’ordre. Maintenant, je souhaite atsortingbuer à chacun de ces éléments un ensemble de boutons “haut” et “bas” permettant aux utilisateurs de déplacer les éléments d’un clic à l’autre. J’ai essayé de retravailler ces billets, mais il me manque quelque chose d’évident …
jQuery Sortable Move UP / DOWN bouton déplacer vers le haut / bas dans jQuery
Je pense que d’une certaine manière, je n’applique pas l’interrogation au bon élément. Mon jsfiddle est ici: http://jsfiddle.net/kevindp78/vexw5/2/ et le code est ci-dessous.
HTML
JS
$('up-button').click(function(){ $(this).parent('.leg').insertBefore.previous('.leg') }); $('.down-button').click(function(){ $(this).parent('.leg').insertAfter.next('.leg') });
- Cercles CSS sans largeur ni hauteur? : Est-ce possible avec du CSS pur ou pas?
- itérer à travers des éléments de formulaire nesteds dans jQuery
- Les calendriers complets des machines à sous ne fonctionneront pas
- mobile fast click – empêche la mise au sharepoints fantômes
- jQuery iframe form soumettre
Il y a plusieurs problèmes à résoudre dans votre code, examinons-les dans l’ordre.
Il y a d’abord $('up-button')
il manque le .
donc il ne sélectionnera pas les boutons.
Ensuite, vous utilisez la méthode parent()
qui ne monte que d’un niveau, utilisez plutôt les parents('.leg')
.
insertBefore()
est une méthode qui accepte une cible quant à l’emplacement du contenu que vous avez sélectionné.
previous()
n’est pas une fonction, c’est prev()
place et il n’a pas besoin de paramètre car il ne fait que sélectionner l’élément précédent.
Si vous combinez toutes ces corrections, vous obtiendrez quelque chose comme ceci
$('.up-button').click(function(){ $(this).parents('.leg').insertBefore($(this).parents('.leg').prev()); }); $('.down-button').click(function(){ $(this).parents('.leg').insertAfter($(this).parents('.leg').next()); });
Comme démontré sur ce violon édité http://jsfiddle.net/vexw5/6/
Vous pouvez essayer de remplacer votre JS par quelque chose comme ceci:
$(".down").click(function () { var $parent = $(this).parents(".leg"); $parent.insertAfter($parent.next()); }); $(".up").click(function () { var $parent = $(this).parents(".leg"); $parent.insertBefore($parent.prev()); });
Ceci est juste les bases. Il n’y a pas d’animations ou quoi que ce soit.
- Bootstrap Carousel avec éléments dynamics ne glisse pas
- JavaScript / jQuery – Comment vérifier si une chaîne contient des mots spécifiques
- Cliquez sur pour mettre en évidence
- L’événement click jquery se déclenche plusieurs fois lors de l’utilisation du sélecteur de classe
- jquery Vérification pour voir si element a element
- jQuery 1.8.2 + jQuery UI non courante = outerWidth et outerHeight cassé
- Chargement d’images plus rapide dans une page Web
- redimensionner la police pour tenir dans un div (sur une ligne)
- Cefsharp winforms: Inject jquery dans la page
- Bootstrap carrousel-fade ne fonctionne plus avec maxcdn 3.3.bootstrap.min.css