Extension de jQuery

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