2010-04-06 2 views
0

J'utilise jquery ui pour appliquer un effet de glisser-déposer sur une série de DIVs, par exemple:Comment appliquer automatiquement un effet de glisser-déposer à un élément ajouté dynamiquement?

<div class="draggable">...</div> 
<div class="draggable">...</div> 
<div class="draggable">...</div> 
<div class="draggable"> this DIV was dynamically added, not draggable </div> 

Le problème est dynamiquement ajouté DIVs n'aura pas cet effet appliqué, comment puis-je appliquer cet effet sur nouveaux membres aussi?

Répondre

1

Vous ne pouvez pas utiliser directement la fonction .live() avec .draggable(), mais vous pouvez utiliser .live() avec l'événement mouseover et réattacher .draggable() au passage de la souris comme ceci.

$('.draggable').live('mouseover',function(){ 
    $(this).draggable(); 
}); 
+1

Après un peu En regardant, il serait peut-être préférable de vérifier que l'objet est déjà déplaçable avant de le faire glisser. $ ('. Draggable'). Live ('mouseover', function() { if (! $ (This) .hasClasse ('ui-draggable')) {$ (this) .draggable();} }); – AdmSteck

+0

.live a été abandonnée maintenant. Son mieux d'utiliser .on: - $ (corps) .sur ('mouseover', '' .draggable, function() { $ (ce) .draggable();}) – Divyanshu

0

Jetez un oeil à la jQuery .live(). Je crois que vous pourriez l'utiliser ici. Si ce n'est pas le cas, ajoutez simplement .draggable() lorsque vous créez votre élément.

Questions connexes