github.com/Azareal/Gosora@v0.0.0-20210729070923-553e66b59003/public/Sortable-1.4.0/jquery.binding.js (about)

     1  /**
     2   * jQuery plugin for Sortable
     3   * @author	RubaXa   <trash@rubaxa.org>
     4   * @license MIT
     5   */
     6  (function (factory) {
     7  	"use strict";
     8  
     9  	if (typeof define === "function" && define.amd) {
    10  		define(["jquery"], factory);
    11  	}
    12  	else {
    13  		/* jshint sub:true */
    14  		factory(jQuery);
    15  	}
    16  })(function ($) {
    17  	"use strict";
    18  
    19  
    20  	/* CODE */
    21  
    22  
    23  	/**
    24  	 * jQuery plugin for Sortable
    25  	 * @param   {Object|String} options
    26  	 * @param   {..*}           [args]
    27  	 * @returns {jQuery|*}
    28  	 */
    29  	$.fn.sortable = function (options) {
    30  		var retVal,
    31  			args = arguments;
    32  
    33  		this.each(function () {
    34  			var $el = $(this),
    35  				sortable = $el.data('sortable');
    36  
    37  			if (!sortable && (options instanceof Object || !options)) {
    38  				sortable = new Sortable(this, options);
    39  				$el.data('sortable', sortable);
    40  			}
    41  
    42  			if (sortable) {
    43  				if (options === 'widget') {
    44  					return sortable;
    45  				}
    46  				else if (options === 'destroy') {
    47  					sortable.destroy();
    48  					$el.removeData('sortable');
    49  				}
    50  				else if (typeof sortable[options] === 'function') {
    51  					retVal = sortable[options].apply(sortable, [].slice.call(args, 1));
    52  				}
    53  				else if (options in sortable.options) {
    54  					retVal = sortable.option.apply(sortable, args);
    55  				}
    56  			}
    57  		});
    58  
    59  		return (retVal === void 0) ? this : retVal;
    60  	};
    61  });