2010-08-28 14 views
5
$('#element').draggable ({ 
    stop: function() { 
     alert ('stopped'); 
     //do some action here 
    } 
}).trigger('stop'); 

Rien ne se passe, pensé #element est maintenant déplaçable et l'événement s'exécute après la fin du glissement. J'ai essayé .triggerHandle ainsi que 'dragstop' comme eventtype, pas de chanceMéthode Jquery .trigger ('stop') pour .draggable

Répondre

5

Utilisez cette option pour le déclencher à la place:

.trigger('dragstop') 

Si vous voulez qu'il se comporte complètement comme un événement normal, utilisez .bind ('DragStop ', function) pour l'attacher aussi, l'option start se comporte légèrement différemment.

+0

j'ai essayé, même – selytch

+1

@selytch - Avez-vous essayé d'utiliser. lier()? Le rappel est traité un peu différemment qu'un lien droit appelé est ici. –

+0

Merci, ça marche! Je n'ai pas réalisé que .bind fonctionne différemment. Est-ce documenté? (probablement oui ...) – selytch

-1

Je sais que c'est une vieille question, mais maintenant il est possible de déclencher l'événement réel de drag de jquery ui au lieu du dragstart et dragstop en utilisant le jQuery simulate plugin.

Voici le code je parce que je besoin d'avoir accès aux claquant des éléments de mon objet redimensionnable (données uniquement accesible sur l'arrêt de la traînée)

$(this).resizable({ 
    handles: 'e', 
    stop: function (e, ui) { 
     var resizable = ui.element;    
     resizable.simulate("mousedown", {clientX: e.clientX, clientY: e.clientY}); 
     resizable.simulate("mousemove", {clientX: e.clientX + 10, clientY: e.clientY + 10}); 
     resizable.simulate("mouseup", {clientX: e.clientX, clientY: e.clientY}); 
    } 
});