2010-12-12 2 views
2

Je tente d'effectuer rapidement des copies d'une classe en liant la méthode clone() à l'événement doubleclick. Mon code, à ce jour est:JQuery: Transférer des comportements vers des objets clonés

<style type="text/css"> 
.draggable { float:left; clear: both; } 
</style> 
<script type="text/javascript"> 
$(function() { 
    copyit = function() { 
     $(this).clone().appendTo("body").css('position','absolute').draggable(); 
    } 
    $('.draggable').dblclick(copyit); 
    $('.draggable').draggable(); 
}); 
</script> 

<div class="draggable">Hi There!</div> 
<div class="draggable">What's up?</div> 

Tout fonctionne, sauf que je ne peux pas les éléments clonés pour se cloner une fois qu'ils sont ajoutés au DOM. Toute aide est grandement appréciée.

Répondre

1

Mettre en place le gestionnaire double-cliquez avec .live()

$('.draggable').live("dblclick", copyit); 
+0

$ live ("dblclick", CopyIt); fonctionne parfaitement. Merci pour votre aide Pointy et RTP Matt. – user531380

2

Je suppose que vous ne liez pas l'événement dblclick aux nouveaux nœuds DOM. Dans ce cas, vous avez fait 2 façons dont vous pouvez accomplir cette tâche:

  1. Vous pouvez faire le dblclick un événement en direct (ou son délégué) comme celui-ci: («draggable «) $ vivre (» dblclick »,. copyit); voir: http://api.jquery.com/live/ http://api.jquery.com/delegate/

  2. Vous pouvez faire le clone copier les événements de l'objet en passant il vrai, comme ceci: $ (this) .clone (true) .appendTo ("corps") css. ('position', 'absolute'). draggable(); ('draggable'). voir:: http://api.jquery.com/clone/

Questions connexes