mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
draggable: fixed numerous issues with over/out logic on connected sortable lists (fixes #3988)
This commit is contained in:
parent
51c338b9ed
commit
7989bf1bee
@ -501,10 +501,16 @@ $.ui.plugin.add("draggable", "connectToSortable", {
|
||||
|
||||
$.each(inst.sortables, function(i) {
|
||||
|
||||
if(checkPos.call(inst, this.instance.containerCache)) {
|
||||
//Copy over some variables to allow calling the sortable's native _intersectsWith
|
||||
this.instance.positionAbs = inst.positionAbs;
|
||||
this.instance.helperProportions = inst.helperProportions;
|
||||
this.instance.offset.click = inst.offset.click;
|
||||
|
||||
if(this.instance._intersectsWith(this.instance.containerCache)) {
|
||||
|
||||
//If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
|
||||
if(!this.instance.isOver) {
|
||||
|
||||
this.instance.isOver = 1;
|
||||
//Now we fake the start of dragging for the sortable instance,
|
||||
//by cloning the list group item, appending it to the sortable and using it as inst.currentItem
|
||||
@ -539,9 +545,16 @@ $.ui.plugin.add("draggable", "connectToSortable", {
|
||||
//If it doesn't intersect with the sortable, and it intersected before,
|
||||
//we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
|
||||
if(this.instance.isOver) {
|
||||
|
||||
this.instance.isOver = 0;
|
||||
this.instance.cancelHelperRemoval = true;
|
||||
this.instance.options.revert = false; //No revert here
|
||||
|
||||
//Prevent reverting on this forced stop
|
||||
this.instance.options.revert = false;
|
||||
|
||||
// The out event needs to be triggered independently
|
||||
this.instance._trigger('out', event, this.instance._uiHash(this.instance));
|
||||
|
||||
this.instance._mouseStop(event, true);
|
||||
this.instance.options.helper = this.instance.options._helper;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user