Вы можете использовать комбинацию draggable и droppable из jquery ui. Настройте панель инструментов как сбрасываемую, а значки - как перетаскиваемые:
var deleteClass = 'deleteMe';
$('div.toolbar').droppable({
out:function(event, ui){
ui.draggable.addClass(deleteClass);
},
over:function(event,ui){
ui.draggable.removeClass(deleteClass);
}
});
$('div.icon').draggable({
helper:'clone',
revert:'valid',
opacity:.5,
stop: function(event,ui){
if($(this).hasClass('deleteMe')){$(this).fadeOut();}
}
});
В основном работа в событиях. Вне и после событий отбрасываемой панели инструментов добавьте и удалите класс на значке, который мы можем использовать в качестве флага, чтобы знать, когда значок не находится над панелью инструментов. Событие остановки на перетаскиваемой иконке позволяет нам удалить иконку, если она не находится над панелью инструментов. Вы можете попробовать это с этим jsFiddle . Я уверен, что то же самое можно сделать с помощью виджета jquery ui sortable , чтобы вы также могли позволить своим пользователям переупорядочивать значки, если они этого захотят.