mirror of https://github.com/RubaXa/Sortable.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.2 KiB
61 lines
1.2 KiB
/** |
|
* jQuery plugin for Sortable |
|
* @author RubaXa <trash@rubaxa.org> |
|
* @license MIT |
|
*/ |
|
(function (factory) { |
|
"use strict"; |
|
|
|
if (typeof define === "function" && define.amd) { |
|
define(["jquery"], factory); |
|
} |
|
else { |
|
/* jshint sub:true */ |
|
factory(jQuery); |
|
} |
|
})(function ($) { |
|
"use strict"; |
|
|
|
|
|
/* CODE */ |
|
|
|
|
|
/** |
|
* jQuery plugin for Sortable |
|
* @param {Object|String} options |
|
* @param {..*} [args] |
|
* @returns {jQuery|*} |
|
*/ |
|
$.fn.sortable = function (options) { |
|
var retVal, |
|
args = arguments; |
|
|
|
this.each(function () { |
|
var $el = $(this), |
|
sortable = $el.data('sortable'); |
|
|
|
if (!sortable && (options instanceof Object || !options)) { |
|
sortable = new Sortable(this, options); |
|
$el.data('sortable', sortable); |
|
} |
|
|
|
if (sortable) { |
|
if (options === 'widget') { |
|
retVal = sortable; |
|
} |
|
else if (options === 'destroy') { |
|
sortable.destroy(); |
|
$el.removeData('sortable'); |
|
} |
|
else if (typeof sortable[options] === 'function') { |
|
retVal = sortable[options].apply(sortable, [].slice.call(args, 1)); |
|
} |
|
else if (options in sortable.options) { |
|
retVal = sortable.option.apply(sortable, args); |
|
} |
|
} |
|
}); |
|
|
|
return (retVal === void 0) ? this : retVal; |
|
}; |
|
});
|
|
|