J'utilise la bibliothèque jQuery pour implémenter le glisser-déposer.
Comment puis-je obtenir l'élément qui est déplacé quand il est déposé?
Je veux obtenir l'identifiant de l'image à l'intérieur de la div. L'élément suivant est déplacé:
<div class="block">
<asp:Image ID="Image9" AlternateText="10/12/2008 - Retina" Width=81 Height=84 ImageUrl="~/uploads/ImageModifier/retina.jpg" runat=server />
</div>
J'ai la fonction standard abandonnée de leur exemple:
$(".drop").droppable({
accept: ".block",
activeClass: 'droppable-active',
hoverClass: 'droppable-hover',
drop: function(ev, ui) { }
});
J'ai essayé divers ui.id
etc. qui ne semblent pas fonctionner.
N'est-ce pas le ui.draggable?
Si vous allez ici (dans Firefox et en supposant que vous avez firebug) et regardez dans la console firebug, vous verrez que je suis en train de faire un fichier console.dir de l'objet ui.draggable qui est la div en train de glisser
Par conséquent, le code dont vous avez besoin dans la fonction de dépôt est
drop: function(ev, ui) {
//to get the id
//ui.draggable.attr('id') or ui.draggable.get(0).id or ui.draggable[0].id
console.dir(ui.draggable)
}
$(ui.draggable).attr("id")
...
Le ui.draggable () ne semble plus fonctionner. Pour obtenir l'identifiant on peut utiliser
$(event.target).attr("id");
UNE RÉPONSE QUI FONCTIONNE EN 2017
Beaucoup de temps s'est écoulé et j'ai constaté que la réponse acceptée actuellement ne fonctionne plus.
Une solution qui fonctionne actuellement:
$('#someDraggableGroup').draggable({
helper: 'clone',
start: function( event, ui ) {
console.log(ui.helper.context)
console.log(ui.helper.clone())
}
})
Ici, ui.helper.context
fait référence à l'objet d'origine que vous essayez de faire glisser et clone()
à la version clonée.
MODIFIER
Ce qui précède vous permet également de voir quel objet vous faites glisser à l'aide de la fonction draggable()
. Pour détecter quel objet draggable
a été déposé dans une droppable()
, les opérations suivantes fonctionnent:
$('#myDroppable').droppable({
drop: function(event, ui){
console.log(ui.draggable.context)
OR
console.log(ui.draggable.clone() )
}
})
J'ai essayé la plupart de ce qui précède, mais à la fin seulement
event.target.id
a travaillé pour moi.
redquare a raison, dans votre fonction, reportez-vous à ui.draggable
:
$(".drop").droppable({ accept: ".block",
activeClass: 'droppable-active',
hoverClass: 'droppable-hover',
drop: function(ev, ui) {
//do something with ui.draggable here
}
});
Cette propriété pointe sur la chose traînée.
Notez que si vous utilisez des "assistants" clonés, le glissable sera la copie clonée, pas l'original.
j'ai eu
drop: function( event, ui ) {alert(ui.draggable.attr("productid"));}
Comment manipuler un objet clone dans n'importe quelle opération jquery ui?
Il suffit de cibler le langage HTML externe et d’utiliser les sélecteurs html jquery normaux.
var target_ui_object_html=$(ui.item.context).attr("your attributes");
attributs => id, classe, rel, alt, titre ou attribut personnalisé tel que nom-donnée , utilisateur de données