jQuery déplaçable revenir et d'arrêter de l'événement
Première question, alors soyez gentils 🙂
Ce que j'essaie de faire est d'appeler une fonction lorsque l'utilisateur relâche le déplaçables, et avant de revenir animation est terminée.
Aussi loin que je peux voir, l'événement d'arrêt est appelé uniquement lorsque les revenir a fini. J'ai essayé de passage d'une fonction à revenir option de déplaçables, mais il ne semble pas fonctionner. Ici, c'est un peu mon code pour démontrer;
$("a").draggable({
helper:function(){
return $("<div/>",{id:"mydrag",text:"link"}).appendTo("body");
},
revert:function(evt,ui){
//$("#mydrag").fadeOut("slow");
return true;
},
stop:function(evt,ui){
console.log("fin");
}
});
Si je décommentez la première ligne de l'rétablir la fonction fadeout - puis l'élément disparaît, mais ne revient pas. La console uniquement les journaux "fin" quand revenir l'animation est terminée.
Quelqu'un peut m'aider? Inutile de dire que j'ai Googlé beaucoup pour la réponse, mais avec pas de chance.
Buster
OriginalL'auteur BusterLuke | 2011-05-06
Vous devez vous connecter pour publier un commentaire.
En premier lieu, selon ce blog, les sans-papiers
revert
de rappel ne prend qu'un seul argument (la chute de prise de l'objet, ou le booléenfalse
si la baisse a été rejetée).Maintenant, le problème est que
draggable
utiliseanimate()
en interne pour repositionner le helper. Apparemment, cette animation sera mise en queue et commence seulement après votrefadeOut
effet se termine.Un moyen d'obtenir ce que vous voulez est de faire appel à
animate()
vous-même, comme ceci:Qui permet de selection helper à s'estomper alors que c'est d'être revenue.
Vous pouvez tester cette solution ici.
votre sur la bonne voie, mais l'appel originalPosition littéralement ne retourne rien, même avec votre jsfiddle. Vous ne savez pas où vous avez trouvé cette partie à cause d'appel .animer(undefined) essentiellement ne fait rien. Le revert de l'animation est en fait toujours un résultat de retourner true à partir de l'intérieur de votre fonction de rappel. Donc, fondamentalement, ce que votre code est en train de faire est tout simplement en contournant la "queue" de l'animation, permettant d'exécuter simultanément avec n'importe quel autre animation que vous choisissez de mettre dans votre fonction de rappel suivie par le retour de vrai. Conclusion: enlever cela .animer($helper.originalPosition);
vous avez tout à fait raison,
$helper.originalPosition
est en effetundefined
au cours de larevert
événement. Toutefois, la suppression de l'appel àanimate(undefined)
résultats au point de ne pas revenir et le fondu "en place". Il y a certainement quelque chose ombragé ici...OriginalL'auteur Frédéric Hamidi