Comment appeler par programme de jQuery UI Déplaçable début de glissement?
- Je créer un nouveau jQuery élément après que la souris est dans une position, et avant qu'il soit libéré. (Après mousedown).
Je voudrais déclencher par programmation dragging
sur le nouvel élément à l'aide de jQuery UI, de sorte qu'il sera automatiquement commencer à tirer avec mon mouvement de la souris. Je ne veux pas avoir à libérer, puis cliquez sur le bouton de la souris.
J'ai essayé la chose suivante...
var element = $("<div />");
element.appendTo("body").draggable().trigger("mousedown");
...cependant cela ne fonctionne pas.
Quelqu'un aurait-il des suggestions sur la façon d'accomplir cette?
Mise à JOUR: Après quelques recherches, l'affiche de cette question a la même problème. Toutefois, la solution proposée, qui se résume à...
$("body").on("mousedown", function(e) {
$("<div />").draggable().appendTo("body").trigger(e);
});
...ne fonctionne plus dans les dernières versions de jQuery et jQuery UI, et au lieu de cela génère un Maximum de Pile d'Appel Dépassé erreur.
- Jamais trouvé une solution à cela? J'ai constaté qu'aucune des réponses vraiment travailler. Je ne pense pas que quiconque comprend le problème.
- Re-déclenchement de l'événement mousedown avec
.trigger(e)
sur l'élément inséré comme décrit dans la stackoverflow.com/q/8759884/165673 a fonctionné pour moi avec la dernière version de jQuery 1.9... Pouvez-vous faire un violon montrant comment le Max d'Appel d'erreur se produit? - Non désolé, je n'ai jamais trouvé une solution. J'ai fini par rouler ma propre déplaçable à cette adresse.
Vous devez vous connecter pour publier un commentaire.
C'est totalement un hack, mais il semble faire l'affaire:
Voici la plunker
Mon exemple utilise un élément qui existe déjà plutôt que d'en créer un, mais il devrait fonctionner de la même façon.
La déplaçable plugin attend de ses événements mousedown l'utilisation de son espace de nommage et de pointer l'objet déplaçable en tant que cible. La modification de ces champs dans l'événement fonctionne avec jQuery 1.8.3 et jQuery UI 1.9.2.
Démo ici: http://jsfiddle.net/maCmB/1/
Créer votre déplaçable la fonction mouseover
Comme le déplaçable d'initialisation a déjà fait, votre premier clic de la souris sera pris en compte
Vous devez lier l'événement mousedown pour l'élément en question, vous pouvez déclencher l'événement.
De http://api.jquery.com/trigger/
Hacks ne sont pas nécessaires si vous êtes à la création de l'élément au cours de l'événement, et que l'élément n'est pas trop compliqué. Vous pouvez tout simplement mis déplaçable à l'élément qui mousedown se produit et l'utilisation déplaçable propriété d'assistance pour créer un assistant, qui va être votre nouvel élément. Sur dragStop clone de l'application d'assistance à la localisation dans les dom que vous voulez.
Bien sûr, vous devez définir la position de l'aide, de sorte que la souris est sur elle. C'est juste un exemple de base.