Changeset 4502
- Timestamp:
- 01/21/08 17:41:11 (1 year ago)
- Files:
-
- 1 modified
-
trunk/ui/current/ui.sortable.js (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ui/current/ui.sortable.js
r4396 r4502 10 10 $.extend($.expr[':'], { sortable: "(' '+a.className+' ').indexOf(' ui-sortable ')" }); 11 11 12 $.fn.sortable = function(o) { 13 return this.each(function() { 14 new $.ui.sortable(this,o); 15 }); 16 }; 12 $.fn.extend({ 13 makeSortable: function(o) { 14 return this.each(function() { 15 if(!$.data(this, "ui-sortable")) new $.ui.sortable(this,o); 16 }); 17 }, 18 removeSortable: function() { 19 return this.each(function() { if($.data(this, "ui-sortable")) $.data(this, "ui-sortable").destroy(); }); 20 }, 21 changeSortable: function(key,value) { 22 var ret = null; 23 this.each(function() { 24 if($.data(this, "ui-sortable")) ret = $.data(this, "ui-sortable")[key](value); 25 }); 26 return ret || this; 27 }, 28 enableSortable: function() { 29 return this.each(function() { if($.data(this, "ui-sortable")) $.data(this, "ui-sortable").enable(); }); 30 }, 31 disableSortable: function() { 32 return this.each(function() { if($.data(this, "ui-sortable")) $.data(this, "ui-sortable").disable(); }); 33 } 34 }); 35 17 36 18 37 $.ui.sortable = function(element,options) { … … 87 106 this.element.triggerHandler(n == "sort" ? n : "sort"+n, [e, this.ui()], this.options[n]); 88 107 }, 108 serialize: function(o) { 109 110 var items = $(this.options.items, this.element); //Only the items of the sortable itself 111 var str = ''; 112 o = o || {}; 113 114 $(this.options.items, this.element).each(function() { 115 var res = (this.getAttribute(o.attribute || 'id') || '').match(o.expression || /(.+)[-=_](.+)/); 116 if(res) str += res[1]+'='+res[2]; 117 }); 118 119 return str; 120 121 }, 89 122 intersectsWith: function(item) { 90 123 … … 93 126 var l = item.left, r = l + item.width, 94 127 t = item.top, b = t + item.height; 95 128 96 129 return ( l < x1 + (this.helperProportions.width / 2) // Right Half 97 130 && x2 - (this.helperProportions.width / 2) < r // Left Half … … 101 134 }, 102 135 refresh: function() { 136 103 137 this.items = []; 104 138 var items = this.items; … … 108 142 for (var i = this.options.connectWith.length - 1; i >= 0; i--){ 109 143 var inst = $.data($(this.options.connectWith[i])[0], 'ui-sortable'); 110 if(inst) { 111 queries.push($(inst.options.items, inst.element)); 112 } 144 if(inst) queries.push($(inst.options.items, inst.element)); 113 145 }; 114 146 } … … 136 168 }, 137 169 destroy: function() { 170 138 171 this.element.removeClass("ui-sortable ui-sortable-disabled"); 139 172 this.element.removeMouseInteraction(); 173 174 for (var i = this.items.length - 1; i >= 0; i--) { 175 $.data(this.items[i].item[0], 'ui-sortable-item', null); 176 }; 177 178 $.data(this.element[0], 'ui-sortable', null); 179 140 180 }, 141 181 enable: function() { … … 150 190 151 191 var o = this.options; 192 193 //Refresh the droppable items 194 this.refresh(); this.refreshPositions(); 152 195 153 196 //Create and append the visible helper … … 193 236 //Set the original element visibility to hidden to still fill out the white space 194 237 $(this.currentItem).css('visibility', 'hidden'); 195 196 //Refresh the droppable positions197 this.refreshPositions();198 238 199 239 return false;
