En utilisant jQuery 1.2.x et 1.5.x jQuery UI, on a pu déclencher manuellement glisser comme si:souris Trigger Faire glisser dans jQuery UI
jQuery("#myDiv").mousedown(function(ev) {
target = jQuery(ev.target);
if (target.hasClass("drag-me")) {
target.draggable({
helper: "clone",
start: function()
{
console.log("drag start");
},
stop: function()
{
jQuery(this).draggable("destroy");
}
}).trigger("mousedown.draggable", [ev]);
} });
Il est appliqué au code HTML suivant:
<div id="myDiv">
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
<div class="drag-me"></div>
</div>
C'était une manière pratique d'appliquer le glissement aux éléments à l'intérieur d'un conteneur dont les enfants ont été modifiés dynamiquement. J'aime l'appeler "drag delegation". Toutefois, avec la version de jQuery 1.3.x & jQuery 1.6+, le script ci-dessus a cessé de fonctionner. Utilisation de jQuery 1.3.2 & jQuery UI 1.7.1 renvoie une erreur "trop de récursivité". Comment puis-je déclencher manuellement le glissement? Aucune suggestion?
J'ai ajouté le code HTML. Comme je l'ai mentionné dans la question, cela fonctionnait dans les versions antérieures de jQuery & jQuery UI (1.2.6 et 1.5.2 respectivement). J'ai écrit un article de blog sur le sujet (http://neilcraig.blogspot.com/2008/12/how-to-trigger-jquery-ui-dragging.html). Il a fallu une petite correction à la source de l'interface utilisateur jQuery, mais cela a fonctionné. J'ai essayé de tigger l'événement mousedown en utilisant .trigger (ev), .trigger ("mousedown"), ainsi que .trigger ("mousedown.draggable"), mais hélas. Merci pour votre aide cependant. – Raybiez