2010-11-07 5 views
3

Dans chaque div, il y a deux boutons: supérieur et inférieur. Lorsque l'on clique sur «supérieur», si cette div n'est pas à la position supérieure, elle est déplacée plus haut que l'original. Lorsque vous cliquez sur "inférieur", l'élément sera déplacé plus bas que l'original.jQuery: Déplacer la position de l'élément

La question est: Comment les éléments peuvent-ils être déplacés de haut en bas par rapport à un autre élément?

<div> 
    <div id="a1">a1<input name='higher' type='button' value='higher'/><input name='lower' type='button' value='lower'/></div> 
    <div id="a2">a2<input name='higher' type='button' value='higher'/><input name='lower' type='button' value='lower'/></div> 
    <div id="a3">a3<input name='higher' type='button' value='higher'/><input name='lower' type='button' value='lower'/></div> 
</div> 

Répondre

6

Vous pouvez essayer quelque chose comme ceci: http://www.jsfiddle.net/yijiang/hwPPP/

Avec insertAfter et insertBefore nous pouvons déplacer le parent des boutons de haut en bas.

$('#list').delegate('input[type="button"]', 'click', function() { 
    var parent = $(this).parent(); 

    if(this.value === 'higher'){ 
     parent.insertBefore(parent.prev()); 
    } else { 
     parent.insertAfter(parent.next()); 
    } 

    return false; 
}); 
+0

ce site jsfiddle.net est vraiment cool – mlzboy

1

Peut-être que vous devriez regarder dans quelque chose comme jQueryUI Sortable:

http://jqueryui.com/demos/sortable/

Sinon, vous pouvez utiliser suivant()/précédent() et insertBefore()/insertAfter() fonctions jquery ensemble:

$("#a1").insertAfter($('#a1').next()); 
+0

althrough cette demande de réaliser mes propres, mais je dois ajouter un plug-in dans mon projet, je veux encore trouver un moyen manuel pour y parvenir – mlzboy

+0

il était juste un exemple sur la façon dont vous pouvez utiliser les fonctions ... Le répondre ci-dessus est une belle réponse à votre demande –

Questions connexes