Opened 15 years ago
Closed 15 years ago
#2637 closed bug (fixed)
[BUG+PATCH] ui.droppables: calc position creates undroppables on elements not yet added to DOM
Reported by: | spurkis | Owned by: | braeker |
---|---|---|---|
Priority: | major | Milestone: | 1.2.4 |
Component: | ui | Version: | 1.2.3 |
Keywords: | ui droppables proportions | Cc: | |
Blocked by: | Blocking: |
Description
(also posted to jQuery UI Google Group) Hi there,
I've been trying to create DOM elements, make them droppable, and add them in one fell swoop... pretty much ala:
var $li1 = $('<li class="one">foo</li>'); $li1.draggable({opacity: 0.5, helper: 'clone'});
var $li2 = $('<li>bar</li>'); $li.droppable({
accept: '.one', tolerance: 'pointer', activeClass: 'droppable-active', hoverClass: 'droppable-hover', refreshPositions: true, drop: function(ev, ui) {
alert('dropped '+ui.draggable+' onto '+this+'!');
},
});
I couldn't figure out why the droppables I was creating were getting 'droppable-active' set but never 'droppable-hover'. And it worked for other droppables I had on the page.
When I looked through ui.droppable.js, I found out that 'refreshPositions' doesn't quite do what it says on the tin - it refreshes the offsets, but not the proportions.
I've uploaded a patch that does just that (though I can't figure out how to link to it from here? it's called ui.droppable.js-recalc- position.patch). Note that I opted to do a recalcProportions() on droppable.activate() instead of in the drag() method like prepareOffsets() because I wanted to reduce the time spent calculating... others may have different opinions. I also made the mouse pointer calcs a bit less repetitive (and prolly 1x10e-100 s faster ;-)
Hope this helps, -Steve
Attachments (1)
Change History (7)
Changed 15 years ago by
Attachment: | ui.droppable.js-recalc-position.patch added |
---|
comment:1 Changed 15 years ago by
Owner: | changed from paul to braeker |
---|
comment:2 Changed 15 years ago by
I haven't tested this at all, but try just changing line 226 of ui.droppable.js from
m[i].item.proportions = ...
to
m[i].proportions = ...
comment:3 Changed 15 years ago by
Disregard my previous comment, that line was correct. Paul's going to fix those inconsistencies (#2638).
comment:5 Changed 15 years ago by
Eduardo, can you verify whether or not this problem still exists? Paul and I both feel that the patch is unnecessary (it's doing redundant work). If the problem still exists, there is a bug or typo somewhere.
comment:6 Changed 15 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
I rechecked, this should be fixed!
patch for this bug