79 votes

Jquery ui - triable : glisser par la "poignée" de l'icône dans l'élément triable

J'ai des éléments triables jquery ui qui fonctionnent bien mais mes éléments triables contiennent d'autres éléments interactifs. Afin d'éviter tout tri accidentel lors de l'interaction avec les éléments contenus dans les divs triables, j'aimerais faire en sorte que le mouvement de déplacement des éléments triables ne se produise que lorsqu'on fait glisser un certain élément à l'intérieur de l'élément triable, comme une icône de déplacement qui pourrait se trouver dans le coin supérieur gauche de chaque élément triable. Est-ce possible avec le jqui générique, ou dois-je écrire mon propre hook ?

167voto

Didier Ghys Points 17636

L'option poignée du plugin vous permet de définir quel est l'élément qui peut initier le tri. Vous pouvez fournir un sélecteur ou un élément.

Si vous avez ce html, avec le .handler pour être la poignée pour commencer le tri :

<ul class="sortable">
    <li>
        <span class="handle"></span>
        My element
    </li>
</ul>

Appliquez l'option comme suit :

$( ".sortable" ).sortable({ handle: '.handle' });

Vous pouvez donner à votre élément de poignée le style que vous souhaitez.

4 votes

OMG ne peut pas croire que je n'ai pas vu cela dans la documentation de sortable, mais c'est juste dans la section OPTIONS...

0 votes

Hmm, il semble que dans IE7 (mode quirks dans IE9), cela ne fonctionne pas :(. La poignée ne fonctionne pas, et comme il était limité à la poignée seule, le tri est maintenant désactivé dans IE7 :(. Fonctionne dans FF, IE9, Chrome...

0 votes

Ceci avec jquery 1.7 et jq ui 1.8.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X