mirror of
https://github.com/e107inc/e107.git
synced 2025-08-03 21:27:25 +02:00
Ability to use CDN for core-defined libraries. Ability to select CDN provider.
This commit is contained in:
176
e107_web/lib/jquery-once/jquery.once.js
Normal file
176
e107_web/lib/jquery-once/jquery.once.js
Normal file
@@ -0,0 +1,176 @@
|
||||
/*!
|
||||
* jQuery Once v2.1.2 - http://github.com/robloach/jquery-once
|
||||
* @license MIT, GPL-2.0
|
||||
* http://opensource.org/licenses/MIT
|
||||
* http://opensource.org/licenses/GPL-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Universal Module Definition
|
||||
*
|
||||
* jQuery Once has a dependency on jQuery, so we wrap the code with a UMD
|
||||
* pattern in order to allow loading jQuery and jQuery Once through a module
|
||||
* definition like CommonJS, AMD, or through a global object.
|
||||
*
|
||||
* @see {@link http://github.com/umdjs/umd}
|
||||
*/
|
||||
(function (factory) {
|
||||
'use strict';
|
||||
|
||||
if (typeof exports === 'object') {
|
||||
// CommonJS
|
||||
factory(require('jquery'));
|
||||
} else if (typeof define === 'function' && define.amd) {
|
||||
// AMD
|
||||
/* globals define */
|
||||
define(['jquery'], factory);
|
||||
} else {
|
||||
// Global object
|
||||
/* globals jQuery */
|
||||
factory(jQuery);
|
||||
}
|
||||
})(function ($) {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* Ensures that the given ID is valid, returning 'once' if one is not given.
|
||||
*
|
||||
* @param {string} [id=once]
|
||||
* A string representing the ID to check. Defaults to `'once'`.
|
||||
*
|
||||
* @returns The valid ID name.
|
||||
*
|
||||
* @throws Error when an ID is provided, but not a string.
|
||||
* @private
|
||||
*/
|
||||
var checkId = function (id) {
|
||||
id = id || 'once';
|
||||
if (typeof id !== 'string') {
|
||||
throw new Error('The jQuery Once id parameter must be a string');
|
||||
}
|
||||
return id;
|
||||
};
|
||||
|
||||
/**
|
||||
* Filter elements that have yet to be processed by the given data ID.
|
||||
*
|
||||
* @param {string} [id=once]
|
||||
* The data ID used to determine whether the given elements have already
|
||||
* been processed or not. Defaults to `'once'`.
|
||||
*
|
||||
* @returns jQuery collection of elements that have now run once by
|
||||
* the given ID.
|
||||
*
|
||||
* @example
|
||||
* ``` javascript
|
||||
* // The following will change the color of each paragraph to red, just once
|
||||
* // for the 'changecolor' key.
|
||||
* $('p').once('changecolor').css('color', 'red');
|
||||
*
|
||||
* // .once() will return a set of elements that yet to have the once ID
|
||||
* // associated with them. You can return to the original collection set by
|
||||
* // using .end().
|
||||
* $('p')
|
||||
* .once('changecolorblue')
|
||||
* .css('color', 'blue')
|
||||
* .end()
|
||||
* .css('color', 'red');
|
||||
*
|
||||
* // To execute a function on the once set, you can use jQuery's each().
|
||||
* $('div.calendar').once().each(function () {
|
||||
* // Since there is no once ID provided here, the key will be 'once'.
|
||||
* });
|
||||
* ```
|
||||
*
|
||||
* @see removeOnce
|
||||
* @see findOnce
|
||||
* @this jQuery
|
||||
*
|
||||
* @global
|
||||
* @public
|
||||
*/
|
||||
$.fn.once = function (id) {
|
||||
// Build the jQuery Once data name from the provided ID.
|
||||
var name = 'jquery-once-' + checkId(id);
|
||||
|
||||
// Find elements that don't have the jQuery Once data applied to them yet.
|
||||
return this.filter(function () {
|
||||
return $(this).data(name) !== true;
|
||||
}).data(name, true);
|
||||
};
|
||||
|
||||
/**
|
||||
* Removes the once data from elements, based on the given ID.
|
||||
*
|
||||
* @param {string} [id=once]
|
||||
* A string representing the name of the data ID which should be used when
|
||||
* filtering the elements. This only filters elements that have already been
|
||||
* processed by the once function. The ID should be the same ID that was
|
||||
* originally passed to the once() function. Defaults to `'once'`.
|
||||
*
|
||||
* @returns jQuery collection of elements that were acted upon to remove their
|
||||
* once data.
|
||||
*
|
||||
* @example
|
||||
* ``` javascript
|
||||
* // Remove once data with the 'changecolor' ID. The result set is the
|
||||
* // elements that had their once data removed.
|
||||
* $('p').removeOnce('changecolor').css('color', '');
|
||||
*
|
||||
* // Any jQuery function can be performed on the result set.
|
||||
* $('div.calendar').removeOnce().each(function () {
|
||||
* // Remove the calendar behavior.
|
||||
* });
|
||||
* ```
|
||||
*
|
||||
* @see once
|
||||
* @this jQuery
|
||||
*
|
||||
* @global
|
||||
* @public
|
||||
*/
|
||||
$.fn.removeOnce = function (id) {
|
||||
// Filter through the elements to find the once'd elements.
|
||||
return this.findOnce(id).removeData('jquery-once-' + checkId(id));
|
||||
};
|
||||
|
||||
/**
|
||||
* Filters elements that have already been processed once.
|
||||
*
|
||||
* @param {string} [id=once]
|
||||
* A string representing the name of the data id which should be used when
|
||||
* filtering the elements. This only filters elements that have already
|
||||
* been processed by the once function. The id should be the same id that
|
||||
* was originally passed to the once() function. Defaults to 'once'.
|
||||
*
|
||||
* @returns jQuery collection of elements that have been run once.
|
||||
*
|
||||
* @example
|
||||
* ``` javascript
|
||||
* // Find all elements that have been changecolor'ed once.
|
||||
* $('p').findOnce('changecolor').each(function () {
|
||||
* // This function is called for all elements that has already once'd.
|
||||
* });
|
||||
*
|
||||
* // Find all elements that have been acted on with the default 'once' key.
|
||||
* $('p').findOnce().each(function () {
|
||||
* // This function is called for all elements that have been acted on with
|
||||
* // a 'once' action.
|
||||
* });
|
||||
* ```
|
||||
*
|
||||
* @see once
|
||||
* @this jQuery
|
||||
*
|
||||
* @global
|
||||
* @public
|
||||
*/
|
||||
$.fn.findOnce = function (id) {
|
||||
// Filter the elements by which do have the data.
|
||||
var name = 'jquery-once-' + checkId(id);
|
||||
|
||||
return this.filter(function () {
|
||||
return $(this).data(name) === true;
|
||||
});
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user