|
66 | 66 |
|
67 | 67 | setting = $.extend( true, {}, defaults, options ), |
68 | 68 |
|
69 | | - // base element from which is counted position of draged element |
| 69 | + // base element from which is counted position of draged element |
70 | 70 | base = $( '<' + setting.listSelector + ' />' ) |
71 | 71 | .prependTo( jQBody ) |
72 | 72 | .attr( 'id', 'sortableListsBase' ) |
73 | 73 | .css( setting.baseCss ) |
74 | 74 | .addClass( setting.listsClass + ' ' + setting.baseClass ), |
75 | 75 |
|
76 | | - // placeholder != state.placeholderNode |
77 | | - // placeholder is document fragment and state.placeholderNode is document node |
| 76 | + // placeholder != state.placeholderNode |
| 77 | + // placeholder is document fragment and state.placeholderNode is document node |
78 | 78 | placeholder = $( '<li />' ) |
79 | 79 | .attr( 'id', 'sortableListsPlaceholder' ) |
80 | 80 | .css( setting.placeholderCss ) |
81 | 81 | .addClass( setting.placeholderClass ), |
82 | 82 |
|
83 | | - // hint is document fragment |
| 83 | + // hint is document fragment |
84 | 84 | hint = $( '<li />' ) |
85 | 85 | .attr( 'id', 'sortableListsHint' ) |
86 | 86 | .css( setting.hintCss ) |
87 | 87 | .addClass( setting.hintClass ), |
88 | 88 |
|
89 | | - // Is document fragment used as wrapper if hint is inserted to the empty li |
| 89 | + // Is document fragment used as wrapper if hint is inserted to the empty li |
90 | 90 | hintWrapper = $( '<' + setting.listSelector + ' />' ) |
91 | 91 | .attr( 'id', 'sortableListsHintWrapper' ) |
92 | 92 | .addClass( setting.listsClass + ' ' + setting.hintWrapperClass ) |
93 | 93 | .css( setting.listsCss ) |
94 | 94 | .css( setting.hintWrapperCss ), |
95 | 95 |
|
96 | | - // Is +/- ikon to open/close nested lists |
| 96 | + // Is +/- ikon to open/close nested lists |
97 | 97 | opener = $( '<span />' ) |
98 | 98 | .addClass( 'sortableListsOpener ' + setting.opener.openerClass ) |
99 | 99 | .css( 'background-image', 'url(' + setting.opener.close + ')' ) |
|
108 | 108 | return false; // Prevent default |
109 | 109 | }), |
110 | 110 |
|
111 | | - // Container with all actual elements and parameters |
| 111 | + // Container with all actual elements and parameters |
112 | 112 | state = { |
113 | 113 | isDragged: false, |
114 | 114 | isRelEFP: null, // How browser counts elementFromPoint() position (relative to window/document) |
|
212 | 212 | 'top': elXY.top - elMT, |
213 | 213 | 'left': elXY.left - elML |
214 | 214 | }) |
215 | | - .prependTo( base ); |
| 215 | + .prependTo( base ); |
216 | 216 |
|
217 | 217 | placeholderNode.css({ |
218 | 218 | 'display': 'block', |
|
345 | 345 | { |
346 | 346 | state.placeholderNode.remove(); |
347 | 347 | tidyEmptyLists(); |
| 348 | + setting.complete( cEl.el ); // Have to be here cause is necessary to remove placeholder before complete call. |
| 349 | + state.isDragged = false; |
348 | 350 | }); |
349 | 351 | } |
350 | 352 | else |
351 | 353 | { |
352 | 354 | state.placeholderNode.remove(); |
353 | 355 | tidyEmptyLists(); |
| 356 | + setting.complete( cEl.el ); |
| 357 | + state.isDragged = false; |
354 | 358 | } |
355 | 359 |
|
356 | | - setting.complete( cEl.el ); |
357 | | - |
358 | | - state.isDragged = false; |
359 | | - |
360 | 360 | }); |
361 | 361 |
|
362 | 362 | scrollStop( state ); |
|
818 | 818 | } |
819 | 819 |
|
820 | 820 | arr.push( matches[1] + '[' + matches[2] + ']=' + parentId ); |
821 | | - |
822 | 821 | $( this ).children( 'ul,ol' ).sortableListsToString( arr, matches[2] ); |
823 | 822 |
|
824 | 823 | }); |
|
0 commit comments