2009-08-13 7 views
1

Je suis en train de faire un groupe d'objets draggable comme vous pouvez le voir ci-dessous - assez facile. Mais je voudrais configurer les choses de sorte que si l'un de ces éléments est traîné, les autres cesseront automatiquement d'être déplaçables. Est-ce que quelqu'un sait comment faire ça?Comment désactiver Draggables dans script.aculo.us

var products = document.getElementsByClassName('box'); 
for (var i = 0; i < products.length; i++) { 
    new Draggable(products[i].id, {ghosting:true}) 
} 

Aussi, est-il possible, après avoir fait un objet draggable, pour déclencher sélectivement et individuellement son « onStart », « OnEnd », ou des séquences « Revert » par le code, ne pas utiliser la souris?

Répondre

0

Save the Draggables dans une collection et appeler destroy() sur eux quand l'un d'eux est traînés (c.-à-onEnd est tiré):

var draggables = []; 
var products = document.getElementsByClassName('box'); 
for (var i = 0; i < products.length; i++) { 
    var draggable = new Draggable(products[i].id, { 
     ghosting:true, 
     onEnd: function() { 
      draggables.invoke('destroy'); 
     } 
    }); 
    draggables.push(draggable) 
} 
+0

Merci pour le suivi ... J'ai essayé ce code mais cela ne semble pas fonctionner. Tout semble fonctionner normalement sauf l'instruction "draggables.invoke ('destroy')". Il semble n'avoir aucun effet. J'ai essayé d'autres variations telles que: [1] pour (var d dans draggables) draggables.pop (d); [2] draggables.each (function (draggable) { alert (item)}); – echobase

+0

... désolé ce commentaire a été foiré. J'ai aussi essayé:.. draggables.each (function (draggable) { draggable.destroy();} , mais rien de tout cela semble fonctionner – echobase

+0

crescentfresh: Je l'ai fait enfin voici ce que je l'ai fait: OnEnd: fonction (d) { \t Draggables.drags.each (function (draggable) { draggable.destroy();} } Merci pour aider les roues tourner dans ma tête \t \t \t \t \t \t \t \t. \t \t}, – echobase

1

Une fois que vous enregistrez draggables pour détruire tous les éléments déplaçables font:

draggables.each(function(item){ 
    item.destroy(); 
}); 
Questions connexes