Skip to main content

Bug Tracker

Side navigation

#2704 closed bug (fixed)

Opened April 17, 2008 01:16PM UTC

Closed May 03, 2008 07:13AM UTC

ui.droppable.js and removing droppables

Reported by: colin.johnson Owned by: braeker
Priority: major Milestone: 1.2.4
Component: ui Version: 1.2.3
Keywords: Cc:
Blocked by: Blocking:
Description

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.

Attachments (1)
  • ui.droppable.zip (41.7 KB) - added by colin.johnson April 17, 2008 01:17PM UTC.

    Files for reproducing the error

Change History (5)

Changed April 17, 2008 01:19PM UTC by colin.johnso comment:1

Sorry, this should not be listed as a 'Major' priority...can't see how to change that now

Changed April 17, 2008 01:27PM UTC by colin.johnso comment:2

Replying to [comment:1 colin.johnson]:

Sorry, this should not be listed as a 'Major' priority...can't see how to change that now

Sorry, accidentally submitted this before changing the component to 'ui' as well.

Changed April 18, 2008 03:17AM UTC by davidserduke comment:3

component: coreui
owner: → paul

Changed April 23, 2008 09:53AM UTC by paul comment:4

owner: paulbraeker

Changed May 03, 2008 07:13AM UTC by paul comment:5

resolution: → fixed
status: newclosed

I don't know the cause, but I implemented a simple check wether this.options is available in the drop. This should fix it.