J’essaie d’append des fonctionnalités existantes à un site utilisant jQuery
(je souhaite que la fonctionnalité draggable
fonctionne avec live()
).
J’ai trouvé un peu de code qui le fait mais j’ai du mal à le faire fonctionner.
(function ($) { $.fn.liveDraggable = function (opts) { this.live("mouseover", function() { if (!$(this).data("init")) { $(this).data("init", true).draggable(opts); } }); }; }(jQuery));
J’ai ajouté le code après avoir chargé jQuery
et jQuery UI
et avant que je ne fasse quoi que ce soit avec, cependant, lorsque j’essaie de l’utiliser, le message d’erreur suivant s’affiche:
$('.myclass').liveDraggable({}) is undefined.
Quelqu’un peut-il aider?
Votre code fonctionne bien. $('.myclass').liveDraggable({})
va renvoyer undefined
car il n’y a pas d’instruction return. Généralement, vous voulez return this
pour pouvoir enchaîner les appels.
(function ($) { $.fn.liveDraggable = function (opts) { return this.live("mouseover", function() { if (!$(this).data("init")) { $(this).data("init", true).draggable(opts); } }); }; }(jQuery));
Vous pouvez maintenant chaîner cela avec d’autres méthodes jQuery.
$('.myclass').liveDraggable({}).live('click', function(){ // code });
Pour que cela fonctionne, vous devez inclure le (s) script (s) de l’interface utilisateur jQuery (pas uniquement le kernel jQuery). Voir également ici .
En outre, il semble que ce morceau de code provienne de ce fil SO qui contient également quelques exemples d’utilisation: glisser-déposer jQuery à l’aide d’événements en direct