J'ai le problème suivant, j'ai un grand arbre qui a des sous-noeuds qui peuvent être pliés et dépliés sur demande (les données dans les noeuds sont récupérées avec AJAX). Cependant, j'utilise jquery.event.drop/drag pour créer mes cibles glisser/déposer. Cependant, lorsque je plie/déplie les cibles de largage changent de position et j'ai besoin de recalculer. Voilà comment je voulais faire:js/jQuery Drag'n'Drop, recalculer les cibles de dépôt
function create_drop_targets() {
$('li a')
.bind('dropstart', function(event) {
})
.bind('drop', function(event) {
})
.bind('dropend', function(event) {
});
}
create_drop_targets() est appelée à plier/déplier.
Cependant, cela ne fonctionne pas. Je trouve les éléments suivants dans jquery.event.drop:
var drop = $.event.special.drop = {
setup: function(){
drop.$elements = drop.$elements.add(this);
drop.data[ drop.data.length ] = drop.locate(this);
},
locate: function(elem){ // return { L:left, R:right, T:top, B:bottom, H:height, W:width }
var $el = $(elem), pos = $el.offset(), h = $el.outerHeight(), w = $el.outerWidth();
return { elem: elem, L: pos.left, R: pos.left+w, T: pos.top, B: pos.top+h, W: w, H: h };
}
Maintenant je dois savoir comment je peux appeler la méthode setup() à nouveau il repeuple éléments $ avec les nouveaux postes pour les droppables.
J'ai essayé ceci avec des événements en direct sur la version 1.3.2, pas de solution. – ikanobori