diff options
author | Paul Bakaus <paul.bakaus@googlemail.com> | 2008-05-25 18:24:02 +0000 |
---|---|---|
committer | Paul Bakaus <paul.bakaus@googlemail.com> | 2008-05-25 18:24:02 +0000 |
commit | d0d8ee752df025ed109fdab002e19bc1c406d727 (patch) | |
tree | b2e04007c3f5d815e1cfbffa4a4f634bbdebe74e /ui/source/ui.sortable.js | |
parent | 57266e1ba467e67120e023491082db31ce1fa787 (diff) | |
download | jquery-ui-d0d8ee752df025ed109fdab002e19bc1c406d727.tar.gz jquery-ui-d0d8ee752df025ed109fdab002e19bc1c406d727.zip |
sortable,draggable: made connectToSortable work again, now works with multiple sortables (closes #2785)
Diffstat (limited to 'ui/source/ui.sortable.js')
-rw-r--r-- | ui/source/ui.sortable.js | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/ui/source/ui.sortable.js b/ui/source/ui.sortable.js index 8d9c7822d..4c5e00d35 100644 --- a/ui/source/ui.sortable.js +++ b/ui/source/ui.sortable.js @@ -280,8 +280,8 @@ };
},
- mouseStart: function(e) {
-
+ mouseStart: function(e, overrideHandle) {
+
var o = this.options;
this.currentContainer = this;
@@ -295,9 +295,9 @@ }
});
if($.data(e.target, 'sortable-item')) currentItem = $(e.target);
-
- if(!currentItem) return false;
- if(this.options.handle) {
+
+ if(!currentItem) return false;
+ if(this.options.handle && !overrideHandle) {
var validHandle = false;
$(this.options.handle, currentItem).each(function() { if(this == e.target) validHandle = true; });
if(!validHandle) return false;
@@ -330,7 +330,7 @@ //The relative click offset
this.offsets.parent = this.offsetParent.offset();
this.clickOffset = { left: e.pageX - this.offsets.absolute.left, top: e.pageY - this.offsets.absolute.top };
-
+
this.originalPosition = {
left: this.offsets.absolute.left - this.offsets.parent.left - this.margins.left,
top: this.offsets.absolute.top - this.offsets.parent.top - this.margins.top
@@ -512,14 +512,14 @@ $.ui.plugin.add("sortable", "revert", {
stop: function(e, ui) {
- var self = ui.instance;
+ var self = this.data("sortable");
self.cancelHelperRemoval = true;
var cur = self.currentItem.offset();
var op = self.helper.offsetParent().offset();
- if(ui.instance.options.zIndex) ui.helper.css('zIndex', ui.instance.options.zIndex); //Do the zIndex again because it already was resetted by the plugin above on stop
+ if(self.options.zIndex) ui.helper.css('zIndex', self.options.zIndex); //Do the zIndex again because it already was resetted by the plugin above on stop
//Also animate the placeholder if we have one
- if(ui.instance.placeholder) ui.instance.placeholder.animate({ opacity: 'hide' }, parseInt(ui.options.revert, 10) || 500);
+ if(self.placeholder) self.placeholder.animate({ opacity: 'hide' }, parseInt(ui.options.revert, 10) || 500);
ui.helper.animate({
@@ -595,35 +595,35 @@ $.ui.plugin.add("sortable", "axis", {
sort: function(e, ui) {
- var o = ui.options;
+ var o = ui.options, inst = this.data("sortable");
if(o.constraint) o.axis = o.constraint; //Legacy check
- o.axis == 'x' ? ui.instance.position.current.top = ui.instance.originalPosition.top : ui.instance.position.current.left = ui.instance.originalPosition.left;
+ o.axis == 'x' ? inst.position.current.top = inst.originalPosition.top : inst.position.current.left = inst.originalPosition.left;
}
});
$.ui.plugin.add("sortable", "scroll", {
start: function(e, ui) {
- var o = ui.options;
+ var o = ui.options, inst = this.data("sortable");
o.scrollSensitivity = o.scrollSensitivity || 20;
o.scrollSpeed = o.scrollSpeed || 20;
- ui.instance.overflowY = function(el) {
+ inst.overflowY = function(el) {
do { if((/auto|scroll/).test(el.css('overflow')) || (/auto|scroll/).test(el.css('overflow-y'))) return el; el = el.parent(); } while (el[0].parentNode);
return $(document);
}(this);
- ui.instance.overflowX = function(el) {
+ inst.overflowX = function(el) {
do { if((/auto|scroll/).test(el.css('overflow')) || (/auto|scroll/).test(el.css('overflow-x'))) return el; el = el.parent(); } while (el[0].parentNode);
return $(document);
}(this);
- if(ui.instance.overflowY[0] != document && ui.instance.overflowY[0].tagName != 'HTML') ui.instance.overflowYstart = ui.instance.overflowY[0].scrollTop;
- if(ui.instance.overflowX[0] != document && ui.instance.overflowX[0].tagName != 'HTML') ui.instance.overflowXstart = ui.instance.overflowX[0].scrollLeft;
+ if(inst.overflowY[0] != document && inst.overflowY[0].tagName != 'HTML') inst.overflowYstart = inst.overflowY[0].scrollTop;
+ if(inst.overflowX[0] != document && inst.overflowX[0].tagName != 'HTML') inst.overflowXstart = inst.overflowX[0].scrollLeft;
},
sort: function(e, ui) {
var o = ui.options;
- var i = ui.instance;
+ var i = this.data("sortable");
if(i.overflowY[0] != document && i.overflowY[0].tagName != 'HTML') {
if(i.overflowY[0].offsetHeight - (ui.position.top - i.overflowY[0].scrollTop + i.clickOffset.top) < o.scrollSensitivity)
@@ -650,7 +650,6 @@ $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
}
- //ui.instance.recallOffset(e);
i.offset = {
left: i.mouse.start.left - i.originalPosition.left + (i.overflowXstart !== undefined ? i.overflowXstart - i.overflowX[0].scrollLeft : 0),
top: i.mouse.start.top - i.originalPosition.top + (i.overflowYstart !== undefined ? i.overflowYstart - i.overflowX[0].scrollTop : 0)
|