Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#2704 closed bug (fixed)

ui.droppable.js and removing droppables

Reported by: colin.johnson Owned by: eduardo
Priority: major Milestone: 1.5
Component: ui.core 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 11 years ago.
Files for reproducing the error

Download all attachments as: .zip

Change History (8)

Changed 11 years ago by colin.johnson

Attachment: ui.droppable.zip added

Files for reproducing the error

comment:1 in reply to:  description ; Changed 11 years ago by colin.johnson

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

comment:2 in reply to:  1 Changed 11 years ago by colin.johnson

Replying to 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.

comment:3 Changed 11 years ago by davidserduke

Component: coreui
Owner: set to paul

comment:4 Changed 11 years ago by paul

Owner: changed from paul to braeker

comment:5 Changed 11 years ago by paul

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.

comment:6 Changed 11 years ago by (none)

Milestone: 1.2.4

Milestone 1.2.4 deleted

comment:7 Changed 10 years ago by paul

Milestone: 1.5
Note: See TracTickets for help on using tickets.