2011-11-16 5 views
10

Comment faire pour écouter l'événement drag lorsqu'un jquery-ui-sortable est en train d'être déplacé?glisser l'événement pour jquery-ui-sortable

Par stratégie hit-n-trial, j'ai essayé l'événement drag de jquery-ui-draggable mais cela ne fonctionne pas.

$('.widget_container').sortable({ 
    drag: function(event, ui) { console.log('drag'); } 
}); 

Répondre

26

Utilisez événement sort à cette fin:

$(".sortable").sortable({ 
    sort: function(e) { 
     console.log('X:' + e.screenX, 'Y:' + e.screenY); 
    } 
}); 

http://jsbin.com/kegeb

+0

wow! homme ingénieux. Je me demande comment j'ai raté ça. –

+1

Si évident maintenant que je l'ai vu ... haha. Parfait! – daGUY

1

Si vous devez gérer l'événement lorsque l'utilisateur commence à glisser, vous devez utiliser handle au lieu de sort:

$(".sortable").sortable({ 
    handle: function(e) { 
     console.log('Handled'); 
    } 
}); 

Cet événement se produit au début de la traînée et lorsque la page est chargée (http://api.jqueryui.com/sortable/#option-handle).

Je vous suggère de vérifier également cette réponse, ce qui explique la façon correcte de traiter vos éléments lorsque votre liste est mise à jour: Get order of list items in a jQuery Sortable list after resort

Bonne chance

+0

J'ai essayé la méthode 'handle' et j'ai trouvé qu'il ne pouvait pas faire la différence entre cliquer et glisser et, étrangement, désactiver le clic pour trier la fonctionnalité. – ariebear

Questions connexes