29 votes

Comment désactiver le tri avec jQueryUI sortable ?

J'ai mis en œuvre la liste triable de jQueryUI et cela fonctionne très bien. À un moment donné, je souhaite désactiver le tri et garder l'ordre des éléments tel quel, sans que l'utilisateur puisse le modifier.

Il a essayé quelque chose comme ça :

$('.sortable').sortable('disable'); 

et ceci :

$('.sortable').each(function() { $(this).sortable('disable'); });

et :

$('.sortable').disable(); 

et :

$('.sortable').cancel(); 

et diverses combinaisons de tout cela. Tout cela sans succès.

Quelqu'un peut-il me dire Le bon chemin ™ de le faire ?

Mise à jour : J'utilise jQuery 1.3.2 et jQueryUI 1.7.2. Un problème possible pourrait être que j'ai deux listes triables indépendantes sur la page, donc j'ai les classes sortable1 et sortable2. En fait, c'est ce que je fais :

$('.sortable2').sortable('disable'); 

Mise à jour2 : Le problème était que j'utilisais .sortable au lieu de #sortable. Tout fonctionne bien maintenant.

2voto

shuckster Points 1944

La première façon est l'exemple donné dans le documentation . Je viens de le tester avec un de mes propres projets et cela fonctionne bien. Quelles versions de jQuery et de jQuery UI utilisez-vous ? J'ai respectivement les versions 1.3.2 et 1.7.2.

2voto

isync Points 133

$( ".selector" ).sortable( "disable" );

de http://api.jqueryui.com/sortable/#option-disabled

2voto

Rahul Gupta Points 1957

Pour désactiver sortable() vous pouvez utiliser

$(".sortable").sortable("disable");

Pour activer/désactiver en cliquant sur un bouton avec l'id toggleButton

$('#toggleButton').click(function() {
    //check if sortable() is enabled and change and change state accordingly
  // Getter
  var disabled = $(".sortable").sortable( "option", "disabled" );
  if (disabled) {
    $(".sortable").sortable( "enable" );
  }
  else {
    $(".sortable").sortable("disable");
  }
});

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