I have come across an error when trying to remove a droppable when I have finished with it. I am allowing an <li> element to be dragged onto another <li> element that is a droppable.
If I setup something like this:
$(this).droppable({
drop: function(ev, ui) {
// move the dragging element before the droppable
$(ui.draggable).insertBefore($(this));
$(REFERENCE_TO_A_DROPPABLE_LI_ELEMENT).remove();
}
});
I get the following error:
this.items has no properties
This is raised on line 236:
if (!this.item.options.disabled && $.ui.intersect(draggable, this, this.item.options.tolerance))
and line 239:
if (!this.item.options.disabled && this.item.options.accept.call(this.item.element,(draggable.currentItem || draggable.element))) {
If I check that this.items exists then the error can be prevented
if (this.item && !this.item.options.disabled && $.ui.intersect(draggable, this, this.item.options.tolerance))
However, I have not got any knowledge of the impact of this change, and tried to actually resolve it without this change with no success. I think some of the issue is around now having a bind on the remove event (line 54) which means the removed elements are correctly taken out of the $.ui.ddmanager.droppables array but perhaps they are still referenced in the array loop starting on line 234?
I have attached an example of the failure, if you try and drag "Node 2" into the very top land area, it will raise the error.