Comment obtenir l'identifiant de l'élément largable, lors de la chute d'un élément? Ici, j'utilise jquery ui et asp.net mvc.
<table id="droppable">
<tr>
<td style="width:300px;height:50px">Backlog</td>
<td style="width:300px;height:50px">Ready</td>
<td style="width:300px;height:50px">Working</td>
<td style="width:300px;height:50px">Complete</td>
<td style="width:300px;height:50px">Archive</td>
</tr>
<tr id="cart">
<td id="BackLog" class="drag" style="width:120px;height:50px;">
<img class="draggable" id="1234" src="../../Content/themes/base/images/ui-icons_222222_256x240.png" />
</td>
<td id="Ready" class="drag" style="width:140px;height:50px">
</td>
<td id="Working" class="drag" style="width:140px;height:50px">
</td>
<td id="Complete" class="drag" style="width:140px;height:50px">
</td>
<td id="Archive" class="drag" style="width:140px;height:50px">
</td>
</tr>
}
</table>
Ici, je veux déplacer l'image de la première colonne vers une autre colonne et obtenir l'identifiant de cette colonne. Pour le glisser-déposer, j'utilise le script
<script type="text/javascript">
$(function () {
$(".draggable").draggable({ containment: '#imageboundary', axis: "x" });
$("#droppable").droppable({
drop: function (event, ui) {
$.ajax({
type: "POST",
url: '/Project/AddToPhase/' + $(ui.draggable).attr("id") ,
success: function (data) {
$('.result').html(data);
}
});
}
});
});
</script>
Pour obtenir l'id des éléments déplaçables et largables, utilisez ce qui suit:
$('.selector').droppable({ drop: Drop });
function Drop(event, ui) {
var draggableId = ui.draggable.attr("id");
var droppableId = $(this).attr("id");
}
Désolé, il pourrait être un peu tard pour vous, mais je viens de commencer à utiliser jquery et j'avais besoin de la chose exacte.
jQuery UI's Droppable API manual mentionne comment obtenir le "drop-on-droppable" très "secrètement" dans la section de greedy
option :
event.target
Peut être vérifié pour voir quel droppable a reçu l'élément draggable
Mais notez que event.target
Contient juste un élément DOM ...
Vous pourrez obtenir l'ID dans le rappel de votre droppable
drop
via le premier paramètre event
.
Propriété: event.target.id
- si l'ID n'est pas défini: chaîne vide ""
Attribut: event.target.getAttribute('id')
- si l'ID n'est pas défini: null
Propriété: $(event.target).prop('id')
- si l'ID n'est pas défini: chaîne vide ""
Attribut: $(event.target).attr('id')
- si l'ID n'est pas défini: non défini
<script>
$(function(){
$(".droppablesSelector").droppable({
drop: function (event, ui) {
//display the ID in the console log:
console.log( event.target.id );
}
});
});
</script>
Événement
Le système d'événements de jQuery normalise l'objet événement selon les normes W3C.
L'objet événement est garanti d'être transmis au gestionnaire d'événements (aucune vérification de window.event requise). Il normalise la cible , relatedTarget, qui, les propriétés metaKey et pageX/Y et fournit à la fois les méthodes stopPropagation () et preventDefault ().
Vous connectez un "drop"
événement et interrogez l'élément que vous venez de supprimer. L'élément étant le paramètre "ui"
dans la fonction ci-dessous
$( ".selector" ).droppable({
drop: function(event, ui) { ... }
});
Jetez un oeil à la documentation.