jQuery UI remove element when dropped into a div using .droppable
31,951
Solution 1
You can find the item being dragged by using .draggable
property of the ui
element being passed to the callback function of over
, as specied in the docs. Like this:
$(function() {
$(".stack").draggable();
$('#trash').droppable({
over: function(event, ui) {
ui.draggable.remove();
}
});
});
From a usability standpoint, I'd recommend using the
drop
event rather than the over
event, as it would be annoying to delete an item by dragging it unintentionally over the trashcan.
Solution 2
Better to use drop in stead of over
$(function() {
$(".stack").draggable();
$('#trash').droppable({
drop: function(event, ui) {
$(ui.draggable).remove();
}
});
});
Author by
Wyck
Updated on July 22, 2022Comments
-
Wyck almost 2 years
I'm trying to figure out the logic of how to do this.
I have many images with only a CSS class name, they are created dynamically.
These images are draggable using jQuery UI's
.draggable.
I need to have a "trash can" that when an element is dragged into , it is removed.
Example: http://jsfiddle.net/KWdcU/3/ (This is set to remove all elements and not the one dragged into it)
Code:
<div class ="box"> <div class="stack">one</div> <div class="stack">two</div> </div> <div id="trash">trash</div> $(function() { $( ".stack" ).draggable(); }); $('#trash').droppable({ over: function() { //alert('working!'); $('.box').remove(); } });
-
Wyck about 12 yearsThanks, that was a reading comprehension fail on my part, good idea for the 'drop'.
-
Dejv over 9 years
ui.draggable.remove()
is also ok (without$(...)
) -
Sumit patel over 7 yearsi fatch this error : i try to your answer 0x800a138f - JavaScript runtime error: Unable to get property 'remove' of undefined or null reference
-
GoldenGonaz about 7 yearsAgreed, drop is a lot more user friendly and natural than over