|
|
|
@ -969,21 +969,21 @@
|
|
|
|
|
_toggleClass(dragEl, this.options.chosenClass, false); |
|
|
|
|
|
|
|
|
|
// Drag stop event
|
|
|
|
|
_dispatchEvent(this, rootEl, 'unchoose', dragEl, parentEl, rootEl, oldIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'unchoose', dragEl, parentEl, rootEl, oldIndex, null, evt); |
|
|
|
|
|
|
|
|
|
if (rootEl !== parentEl) { |
|
|
|
|
newIndex = _index(dragEl, options.draggable); |
|
|
|
|
|
|
|
|
|
if (newIndex >= 0) { |
|
|
|
|
// Add event
|
|
|
|
|
_dispatchEvent(null, parentEl, 'add', dragEl, parentEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(null, parentEl, 'add', dragEl, parentEl, rootEl, oldIndex, newIndex, evt); |
|
|
|
|
|
|
|
|
|
// Remove event
|
|
|
|
|
_dispatchEvent(this, rootEl, 'remove', dragEl, parentEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'remove', dragEl, parentEl, rootEl, oldIndex, newIndex, evt); |
|
|
|
|
|
|
|
|
|
// drag from one list and drop into another
|
|
|
|
|
_dispatchEvent(null, parentEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(null, parentEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex, evt); |
|
|
|
|
_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex, evt); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
@ -993,8 +993,8 @@
|
|
|
|
|
|
|
|
|
|
if (newIndex >= 0) { |
|
|
|
|
// drag & drop within the same list
|
|
|
|
|
_dispatchEvent(this, rootEl, 'update', dragEl, parentEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'update', dragEl, parentEl, rootEl, oldIndex, newIndex, evt); |
|
|
|
|
_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex, evt); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -1005,7 +1005,7 @@
|
|
|
|
|
newIndex = oldIndex; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_dispatchEvent(this, rootEl, 'end', dragEl, parentEl, rootEl, oldIndex, newIndex); |
|
|
|
|
_dispatchEvent(this, rootEl, 'end', dragEl, parentEl, rootEl, oldIndex, newIndex, evt); |
|
|
|
|
|
|
|
|
|
// Save sorting
|
|
|
|
|
this.save(); |
|
|
|
@ -1314,7 +1314,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function _dispatchEvent(sortable, rootEl, name, targetEl, toEl, fromEl, startIndex, newIndex) { |
|
|
|
|
function _dispatchEvent(sortable, rootEl, name, targetEl, toEl, fromEl, startIndex, newIndex, originalEvt) { |
|
|
|
|
sortable = (sortable || rootEl[expando]); |
|
|
|
|
|
|
|
|
|
var evt = document.createEvent('Event'), |
|
|
|
@ -1331,6 +1331,8 @@
|
|
|
|
|
evt.oldIndex = startIndex; |
|
|
|
|
evt.newIndex = newIndex; |
|
|
|
|
|
|
|
|
|
evt.originalEvent = originalEvt; |
|
|
|
|
|
|
|
|
|
rootEl.dispatchEvent(evt); |
|
|
|
|
|
|
|
|
|
if (options[onName]) { |
|
|
|
@ -1356,6 +1358,8 @@
|
|
|
|
|
evt.relatedRect = targetRect || toEl.getBoundingClientRect(); |
|
|
|
|
evt.willInsertAfter = willInsertAfter; |
|
|
|
|
|
|
|
|
|
evt.originalEvent = originalEvt; |
|
|
|
|
|
|
|
|
|
fromEl.dispatchEvent(evt); |
|
|
|
|
|
|
|
|
|
if (onMoveFn) { |
|
|
|
@ -1431,15 +1435,11 @@
|
|
|
|
|
|
|
|
|
|
function _matches(/**HTMLElement*/el, /**String*/selector) { |
|
|
|
|
if (el) { |
|
|
|
|
selector = selector.split('.'); |
|
|
|
|
|
|
|
|
|
var tag = selector.shift().toUpperCase(), |
|
|
|
|
re = new RegExp('\\s(' + selector.join('|') + ')(?=\\s)', 'g'); |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
(tag === '' || el.nodeName.toUpperCase() == tag) && |
|
|
|
|
(!selector.length || ((' ' + el.className + ' ').match(re) || []).length == selector.length) |
|
|
|
|
); |
|
|
|
|
if (el.matches) { |
|
|
|
|
return el.matches(selector); |
|
|
|
|
} else if (el.msMatchesSelector) { |
|
|
|
|
return el.msMatchesSelector(selector); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|