|
|
@ -1,5 +1,5 @@
|
|
|
|
/*!
|
|
|
|
/*!
|
|
|
|
* jQuery JavaScript Library v1.10.1
|
|
|
|
* jQuery JavaScript Library v1.10.2
|
|
|
|
* http://jquery.com/
|
|
|
|
* http://jquery.com/
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Includes Sizzle.js
|
|
|
|
* Includes Sizzle.js
|
|
|
@ -9,7 +9,7 @@
|
|
|
|
* Released under the MIT license
|
|
|
|
* Released under the MIT license
|
|
|
|
* http://jquery.org/license
|
|
|
|
* http://jquery.org/license
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Date: 2013-05-30T21:49Z
|
|
|
|
* Date: 2013-07-03T13:48Z
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
(function( window, undefined ) {
|
|
|
|
(function( window, undefined ) {
|
|
|
|
|
|
|
|
|
|
|
@ -46,7 +46,7 @@ var
|
|
|
|
// List of deleted data cache ids, so we can reuse them
|
|
|
|
// List of deleted data cache ids, so we can reuse them
|
|
|
|
core_deletedIds = [],
|
|
|
|
core_deletedIds = [],
|
|
|
|
|
|
|
|
|
|
|
|
core_version = "1.10.1",
|
|
|
|
core_version = "1.10.2",
|
|
|
|
|
|
|
|
|
|
|
|
// Save a reference to some core methods
|
|
|
|
// Save a reference to some core methods
|
|
|
|
core_concat = core_deletedIds.concat,
|
|
|
|
core_concat = core_deletedIds.concat,
|
|
|
@ -1000,14 +1000,14 @@ function isArraylike( obj ) {
|
|
|
|
// All jQuery objects should point back to these
|
|
|
|
// All jQuery objects should point back to these
|
|
|
|
rootjQuery = jQuery(document);
|
|
|
|
rootjQuery = jQuery(document);
|
|
|
|
/*!
|
|
|
|
/*!
|
|
|
|
* Sizzle CSS Selector Engine v1.9.4-pre
|
|
|
|
* Sizzle CSS Selector Engine v1.10.2
|
|
|
|
* http://sizzlejs.com/
|
|
|
|
* http://sizzlejs.com/
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Copyright 2013 jQuery Foundation, Inc. and other contributors
|
|
|
|
* Copyright 2013 jQuery Foundation, Inc. and other contributors
|
|
|
|
* Released under the MIT license
|
|
|
|
* Released under the MIT license
|
|
|
|
* http://jquery.org/license
|
|
|
|
* http://jquery.org/license
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Date: 2013-05-27
|
|
|
|
* Date: 2013-07-03
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
(function( window, undefined ) {
|
|
|
|
(function( window, undefined ) {
|
|
|
|
|
|
|
|
|
|
|
@ -1040,7 +1040,13 @@ var i,
|
|
|
|
tokenCache = createCache(),
|
|
|
|
tokenCache = createCache(),
|
|
|
|
compilerCache = createCache(),
|
|
|
|
compilerCache = createCache(),
|
|
|
|
hasDuplicate = false,
|
|
|
|
hasDuplicate = false,
|
|
|
|
sortOrder = function() { return 0; },
|
|
|
|
sortOrder = function( a, b ) {
|
|
|
|
|
|
|
|
if ( a === b ) {
|
|
|
|
|
|
|
|
hasDuplicate = true;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// General-purpose constants
|
|
|
|
// General-purpose constants
|
|
|
|
strundefined = typeof undefined,
|
|
|
|
strundefined = typeof undefined,
|
|
|
@ -1283,14 +1289,6 @@ function Sizzle( selector, context, results, seed ) {
|
|
|
|
return select( selector.replace( rtrim, "$1" ), context, results, seed );
|
|
|
|
return select( selector.replace( rtrim, "$1" ), context, results, seed );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* For feature detection
|
|
|
|
|
|
|
|
* @param {Function} fn The function to test for native support
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
function isNative( fn ) {
|
|
|
|
|
|
|
|
return rnative.test( fn + "" );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Create key-value caches of limited size
|
|
|
|
* Create key-value caches of limited size
|
|
|
|
* @returns {Function(string, Object)} Returns the Object data after storing it on itself with
|
|
|
|
* @returns {Function(string, Object)} Returns the Object data after storing it on itself with
|
|
|
@ -1344,58 +1342,14 @@ function assert( fn ) {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Adds the same handler for all of the specified attrs
|
|
|
|
* Adds the same handler for all of the specified attrs
|
|
|
|
* @param {String} attrs Pipe-separated list of attributes
|
|
|
|
* @param {String} attrs Pipe-separated list of attributes
|
|
|
|
* @param {Function} handler The method that will be applied if the test fails
|
|
|
|
* @param {Function} handler The method that will be applied
|
|
|
|
* @param {Boolean} test The result of a test. If true, null will be set as the handler in leiu of the specified handler
|
|
|
|
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
function addHandle( attrs, handler, test ) {
|
|
|
|
function addHandle( attrs, handler ) {
|
|
|
|
attrs = attrs.split("|");
|
|
|
|
var arr = attrs.split("|"),
|
|
|
|
var current,
|
|
|
|
i = attrs.length;
|
|
|
|
i = attrs.length,
|
|
|
|
|
|
|
|
setHandle = test ? null : handler;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while ( i-- ) {
|
|
|
|
while ( i-- ) {
|
|
|
|
// Don't override a user's handler
|
|
|
|
Expr.attrHandle[ arr[i] ] = handler;
|
|
|
|
if ( !(current = Expr.attrHandle[ attrs[i] ]) || current === handler ) {
|
|
|
|
|
|
|
|
Expr.attrHandle[ attrs[i] ] = setHandle;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Fetches boolean attributes by node
|
|
|
|
|
|
|
|
* @param {Element} elem
|
|
|
|
|
|
|
|
* @param {String} name
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
function boolHandler( elem, name ) {
|
|
|
|
|
|
|
|
// XML does not need to be checked as this will not be assigned for XML documents
|
|
|
|
|
|
|
|
var val = elem.getAttributeNode( name );
|
|
|
|
|
|
|
|
return val && val.specified ?
|
|
|
|
|
|
|
|
val.value :
|
|
|
|
|
|
|
|
elem[ name ] === true ? name.toLowerCase() : null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Fetches attributes without interpolation
|
|
|
|
|
|
|
|
* http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
|
|
|
|
|
|
|
|
* @param {Element} elem
|
|
|
|
|
|
|
|
* @param {String} name
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
function interpolationHandler( elem, name ) {
|
|
|
|
|
|
|
|
// XML does not need to be checked as this will not be assigned for XML documents
|
|
|
|
|
|
|
|
return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* Uses defaultValue to retrieve value in IE6/7
|
|
|
|
|
|
|
|
* @param {Element} elem
|
|
|
|
|
|
|
|
* @param {String} name
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
function valueHandler( elem ) {
|
|
|
|
|
|
|
|
// Ignore the value *property* on inputs by using defaultValue
|
|
|
|
|
|
|
|
// Fallback to Sizzle.attr by returning undefined where appropriate
|
|
|
|
|
|
|
|
// XML does not need to be checked as this will not be assigned for XML documents
|
|
|
|
|
|
|
|
if ( elem.nodeName.toLowerCase() === "input" ) {
|
|
|
|
|
|
|
|
return elem.defaultValue;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1403,7 +1357,7 @@ function valueHandler( elem ) {
|
|
|
|
* Checks document order of two siblings
|
|
|
|
* Checks document order of two siblings
|
|
|
|
* @param {Element} a
|
|
|
|
* @param {Element} a
|
|
|
|
* @param {Element} b
|
|
|
|
* @param {Element} b
|
|
|
|
* @returns Returns -1 if a precedes b, 1 if a follows b
|
|
|
|
* @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
function siblingCheck( a, b ) {
|
|
|
|
function siblingCheck( a, b ) {
|
|
|
|
var cur = b && a,
|
|
|
|
var cur = b && a,
|
|
|
@ -1493,7 +1447,7 @@ support = Sizzle.support = {};
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
var doc = node ? node.ownerDocument || node : preferredDoc,
|
|
|
|
var doc = node ? node.ownerDocument || node : preferredDoc,
|
|
|
|
parent = doc.parentWindow;
|
|
|
|
parent = doc.defaultView;
|
|
|
|
|
|
|
|
|
|
|
|
// If no document and documentElement is available, return
|
|
|
|
// If no document and documentElement is available, return
|
|
|
|
if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
|
|
|
|
if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
|
|
|
@ -1510,7 +1464,8 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
// Support: IE>8
|
|
|
|
// Support: IE>8
|
|
|
|
// If iframe document is assigned to "document" variable and if iframe has been reloaded,
|
|
|
|
// If iframe document is assigned to "document" variable and if iframe has been reloaded,
|
|
|
|
// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
|
|
|
|
// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
|
|
|
|
if ( parent && parent.frameElement ) {
|
|
|
|
// IE6-8 do not support the defaultView property so parent will be undefined
|
|
|
|
|
|
|
|
if ( parent && parent.attachEvent && parent !== parent.top ) {
|
|
|
|
parent.attachEvent( "onbeforeunload", function() {
|
|
|
|
parent.attachEvent( "onbeforeunload", function() {
|
|
|
|
setDocument();
|
|
|
|
setDocument();
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -1522,32 +1477,10 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
// Support: IE<8
|
|
|
|
// Support: IE<8
|
|
|
|
// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
|
|
|
|
// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
|
|
|
|
support.attributes = assert(function( div ) {
|
|
|
|
support.attributes = assert(function( div ) {
|
|
|
|
|
|
|
|
|
|
|
|
// Support: IE<8
|
|
|
|
|
|
|
|
// Prevent attribute/property "interpolation"
|
|
|
|
|
|
|
|
div.innerHTML = "<a href='#'></a>";
|
|
|
|
|
|
|
|
addHandle( "type|href|height|width", interpolationHandler, div.firstChild.getAttribute("href") === "#" );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Support: IE<9
|
|
|
|
|
|
|
|
// Use getAttributeNode to fetch booleans when getAttribute lies
|
|
|
|
|
|
|
|
addHandle( booleans, boolHandler, div.getAttribute("disabled") == null );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
div.className = "i";
|
|
|
|
div.className = "i";
|
|
|
|
return !div.getAttribute("className");
|
|
|
|
return !div.getAttribute("className");
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// Support: IE<9
|
|
|
|
|
|
|
|
// Retrieving value should defer to defaultValue
|
|
|
|
|
|
|
|
support.input = assert(function( div ) {
|
|
|
|
|
|
|
|
div.innerHTML = "<input>";
|
|
|
|
|
|
|
|
div.firstChild.setAttribute( "value", "" );
|
|
|
|
|
|
|
|
return div.firstChild.getAttribute( "value" ) === "";
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// IE6/7 still return empty string for value,
|
|
|
|
|
|
|
|
// but are actually retrieving the property
|
|
|
|
|
|
|
|
addHandle( "value", valueHandler, support.attributes && support.input );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* getElement(s)By*
|
|
|
|
/* getElement(s)By*
|
|
|
|
---------------------------------------------------------------------- */
|
|
|
|
---------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
@ -1656,7 +1589,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
// See http://bugs.jquery.com/ticket/13378
|
|
|
|
// See http://bugs.jquery.com/ticket/13378
|
|
|
|
rbuggyQSA = [];
|
|
|
|
rbuggyQSA = [];
|
|
|
|
|
|
|
|
|
|
|
|
if ( (support.qsa = isNative(doc.querySelectorAll)) ) {
|
|
|
|
if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
|
|
|
|
// Build QSA regex
|
|
|
|
// Build QSA regex
|
|
|
|
// Regex strategy adopted from Diego Perini
|
|
|
|
// Regex strategy adopted from Diego Perini
|
|
|
|
assert(function( div ) {
|
|
|
|
assert(function( div ) {
|
|
|
@ -1708,7 +1641,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ( (support.matchesSelector = isNative( (matches = docElem.webkitMatchesSelector ||
|
|
|
|
if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
|
|
|
|
docElem.mozMatchesSelector ||
|
|
|
|
docElem.mozMatchesSelector ||
|
|
|
|
docElem.oMatchesSelector ||
|
|
|
|
docElem.oMatchesSelector ||
|
|
|
|
docElem.msMatchesSelector) )) ) {
|
|
|
|
docElem.msMatchesSelector) )) ) {
|
|
|
@ -1734,7 +1667,7 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
// Element contains another
|
|
|
|
// Element contains another
|
|
|
|
// Purposefully does not implement inclusive descendent
|
|
|
|
// Purposefully does not implement inclusive descendent
|
|
|
|
// As in, an element does not contain itself
|
|
|
|
// As in, an element does not contain itself
|
|
|
|
contains = isNative(docElem.contains) || docElem.compareDocumentPosition ?
|
|
|
|
contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?
|
|
|
|
function( a, b ) {
|
|
|
|
function( a, b ) {
|
|
|
|
var adown = a.nodeType === 9 ? a.documentElement : a,
|
|
|
|
var adown = a.nodeType === 9 ? a.documentElement : a,
|
|
|
|
bup = b && b.parentNode;
|
|
|
|
bup = b && b.parentNode;
|
|
|
@ -1758,13 +1691,6 @@ setDocument = Sizzle.setDocument = function( node ) {
|
|
|
|
/* Sorting
|
|
|
|
/* Sorting
|
|
|
|
---------------------------------------------------------------------- */
|
|
|
|
---------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
|
|
// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
|
|
|
|
|
|
|
|
// Detached nodes confoundingly follow *each other*
|
|
|
|
|
|
|
|
support.sortDetached = assert(function( div1 ) {
|
|
|
|
|
|
|
|
// Should return 1, but returns 4 (following)
|
|
|
|
|
|
|
|
return div1.compareDocumentPosition( doc.createElement("div") ) & 1;
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Document order sorting
|
|
|
|
// Document order sorting
|
|
|
|
sortOrder = docElem.compareDocumentPosition ?
|
|
|
|
sortOrder = docElem.compareDocumentPosition ?
|
|
|
|
function( a, b ) {
|
|
|
|
function( a, b ) {
|
|
|
@ -1907,9 +1833,9 @@ Sizzle.attr = function( elem, name ) {
|
|
|
|
|
|
|
|
|
|
|
|
var fn = Expr.attrHandle[ name.toLowerCase() ],
|
|
|
|
var fn = Expr.attrHandle[ name.toLowerCase() ],
|
|
|
|
// Don't get fooled by Object.prototype properties (jQuery #13807)
|
|
|
|
// Don't get fooled by Object.prototype properties (jQuery #13807)
|
|
|
|
val = ( fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
|
|
|
|
val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
|
|
|
|
fn( elem, name, !documentIsHTML ) :
|
|
|
|
fn( elem, name, !documentIsHTML ) :
|
|
|
|
undefined );
|
|
|
|
undefined;
|
|
|
|
|
|
|
|
|
|
|
|
return val === undefined ?
|
|
|
|
return val === undefined ?
|
|
|
|
support.attributes || !documentIsHTML ?
|
|
|
|
support.attributes || !documentIsHTML ?
|
|
|
@ -2454,6 +2380,8 @@ Expr = Sizzle.selectors = {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Expr.pseudos["nth"] = Expr.pseudos["eq"];
|
|
|
|
|
|
|
|
|
|
|
|
// Add button/input type pseudos
|
|
|
|
// Add button/input type pseudos
|
|
|
|
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
|
|
|
|
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
|
|
|
|
Expr.pseudos[ i ] = createInputPseudo( i );
|
|
|
|
Expr.pseudos[ i ] = createInputPseudo( i );
|
|
|
@ -2462,6 +2390,11 @@ for ( i in { submit: true, reset: true } ) {
|
|
|
|
Expr.pseudos[ i ] = createButtonPseudo( i );
|
|
|
|
Expr.pseudos[ i ] = createButtonPseudo( i );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Easy API for creating new setFilters
|
|
|
|
|
|
|
|
function setFilters() {}
|
|
|
|
|
|
|
|
setFilters.prototype = Expr.filters = Expr.pseudos;
|
|
|
|
|
|
|
|
Expr.setFilters = new setFilters();
|
|
|
|
|
|
|
|
|
|
|
|
function tokenize( selector, parseOnly ) {
|
|
|
|
function tokenize( selector, parseOnly ) {
|
|
|
|
var matched, match, tokens, type,
|
|
|
|
var matched, match, tokens, type,
|
|
|
|
soFar, groups, preFilters,
|
|
|
|
soFar, groups, preFilters,
|
|
|
@ -2973,26 +2906,67 @@ function select( selector, context, results, seed ) {
|
|
|
|
return results;
|
|
|
|
return results;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Deprecated
|
|
|
|
|
|
|
|
Expr.pseudos["nth"] = Expr.pseudos["eq"];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Easy API for creating new setFilters
|
|
|
|
|
|
|
|
function setFilters() {}
|
|
|
|
|
|
|
|
setFilters.prototype = Expr.filters = Expr.pseudos;
|
|
|
|
|
|
|
|
Expr.setFilters = new setFilters();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// One-time assignments
|
|
|
|
// One-time assignments
|
|
|
|
|
|
|
|
|
|
|
|
// Sort stability
|
|
|
|
// Sort stability
|
|
|
|
support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
|
|
|
|
support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Support: Chrome<14
|
|
|
|
|
|
|
|
// Always assume duplicates if they aren't passed to the comparison function
|
|
|
|
|
|
|
|
support.detectDuplicates = hasDuplicate;
|
|
|
|
|
|
|
|
|
|
|
|
// Initialize against the default document
|
|
|
|
// Initialize against the default document
|
|
|
|
setDocument();
|
|
|
|
setDocument();
|
|
|
|
|
|
|
|
|
|
|
|
// Support: Chrome<<14
|
|
|
|
// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
|
|
|
|
// Always assume duplicates if they aren't passed to the comparison function
|
|
|
|
// Detached nodes confoundingly follow *each other*
|
|
|
|
[0, 0].sort( sortOrder );
|
|
|
|
support.sortDetached = assert(function( div1 ) {
|
|
|
|
support.detectDuplicates = hasDuplicate;
|
|
|
|
// Should return 1, but returns 4 (following)
|
|
|
|
|
|
|
|
return div1.compareDocumentPosition( document.createElement("div") ) & 1;
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Support: IE<8
|
|
|
|
|
|
|
|
// Prevent attribute/property "interpolation"
|
|
|
|
|
|
|
|
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
|
|
|
|
|
|
|
|
if ( !assert(function( div ) {
|
|
|
|
|
|
|
|
div.innerHTML = "<a href='#'></a>";
|
|
|
|
|
|
|
|
return div.firstChild.getAttribute("href") === "#" ;
|
|
|
|
|
|
|
|
}) ) {
|
|
|
|
|
|
|
|
addHandle( "type|href|height|width", function( elem, name, isXML ) {
|
|
|
|
|
|
|
|
if ( !isXML ) {
|
|
|
|
|
|
|
|
return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Support: IE<9
|
|
|
|
|
|
|
|
// Use defaultValue in place of getAttribute("value")
|
|
|
|
|
|
|
|
if ( !support.attributes || !assert(function( div ) {
|
|
|
|
|
|
|
|
div.innerHTML = "<input/>";
|
|
|
|
|
|
|
|
div.firstChild.setAttribute( "value", "" );
|
|
|
|
|
|
|
|
return div.firstChild.getAttribute( "value" ) === "";
|
|
|
|
|
|
|
|
}) ) {
|
|
|
|
|
|
|
|
addHandle( "value", function( elem, name, isXML ) {
|
|
|
|
|
|
|
|
if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
|
|
|
|
|
|
|
|
return elem.defaultValue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Support: IE<9
|
|
|
|
|
|
|
|
// Use getAttributeNode to fetch booleans when getAttribute lies
|
|
|
|
|
|
|
|
if ( !assert(function( div ) {
|
|
|
|
|
|
|
|
return div.getAttribute("disabled") == null;
|
|
|
|
|
|
|
|
}) ) {
|
|
|
|
|
|
|
|
addHandle( booleans, function( elem, name, isXML ) {
|
|
|
|
|
|
|
|
var val;
|
|
|
|
|
|
|
|
if ( !isXML ) {
|
|
|
|
|
|
|
|
return (val = elem.getAttributeNode( name )) && val.specified ?
|
|
|
|
|
|
|
|
val.value :
|
|
|
|
|
|
|
|
elem[ name ] === true ? name.toLowerCase() : null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
jQuery.find = Sizzle;
|
|
|
|
jQuery.find = Sizzle;
|
|
|
|
jQuery.expr = Sizzle.selectors;
|
|
|
|
jQuery.expr = Sizzle.selectors;
|
|
|
@ -3177,9 +3151,9 @@ jQuery.Callbacks = function( options ) {
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// Call all callbacks with the given context and arguments
|
|
|
|
// Call all callbacks with the given context and arguments
|
|
|
|
fireWith: function( context, args ) {
|
|
|
|
fireWith: function( context, args ) {
|
|
|
|
args = args || [];
|
|
|
|
|
|
|
|
args = [ context, args.slice ? args.slice() : args ];
|
|
|
|
|
|
|
|
if ( list && ( !fired || stack ) ) {
|
|
|
|
if ( list && ( !fired || stack ) ) {
|
|
|
|
|
|
|
|
args = args || [];
|
|
|
|
|
|
|
|
args = [ context, args.slice ? args.slice() : args ];
|
|
|
|
if ( firing ) {
|
|
|
|
if ( firing ) {
|
|
|
|
stack.push( args );
|
|
|
|
stack.push( args );
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -4183,8 +4157,11 @@ jQuery.fn.extend({
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
toggleClass: function( value, stateVal ) {
|
|
|
|
toggleClass: function( value, stateVal ) {
|
|
|
|
var type = typeof value,
|
|
|
|
var type = typeof value;
|
|
|
|
isBool = typeof stateVal === "boolean";
|
|
|
|
|
|
|
|
|
|
|
|
if ( typeof stateVal === "boolean" && type === "string" ) {
|
|
|
|
|
|
|
|
return stateVal ? this.addClass( value ) : this.removeClass( value );
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ( jQuery.isFunction( value ) ) {
|
|
|
|
if ( jQuery.isFunction( value ) ) {
|
|
|
|
return this.each(function( i ) {
|
|
|
|
return this.each(function( i ) {
|
|
|
@ -4198,13 +4175,15 @@ jQuery.fn.extend({
|
|
|
|
var className,
|
|
|
|
var className,
|
|
|
|
i = 0,
|
|
|
|
i = 0,
|
|
|
|
self = jQuery( this ),
|
|
|
|
self = jQuery( this ),
|
|
|
|
state = stateVal,
|
|
|
|
|
|
|
|
classNames = value.match( core_rnotwhite ) || [];
|
|
|
|
classNames = value.match( core_rnotwhite ) || [];
|
|
|
|
|
|
|
|
|
|
|
|
while ( (className = classNames[ i++ ]) ) {
|
|
|
|
while ( (className = classNames[ i++ ]) ) {
|
|
|
|
// check each className given, space separated list
|
|
|
|
// check each className given, space separated list
|
|
|
|
state = isBool ? state : !self.hasClass( className );
|
|
|
|
if ( self.hasClass( className ) ) {
|
|
|
|
self[ state ? "addClass" : "removeClass" ]( className );
|
|
|
|
self.removeClass( className );
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
self.addClass( className );
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Toggle whole class name
|
|
|
|
// Toggle whole class name
|
|
|
@ -6948,10 +6927,12 @@ jQuery.fn.extend({
|
|
|
|
return showHide( this );
|
|
|
|
return showHide( this );
|
|
|
|
},
|
|
|
|
},
|
|
|
|
toggle: function( state ) {
|
|
|
|
toggle: function( state ) {
|
|
|
|
var bool = typeof state === "boolean";
|
|
|
|
if ( typeof state === "boolean" ) {
|
|
|
|
|
|
|
|
return state ? this.show() : this.hide();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return this.each(function() {
|
|
|
|
return this.each(function() {
|
|
|
|
if ( bool ? state : isHidden( this ) ) {
|
|
|
|
if ( isHidden( this ) ) {
|
|
|
|
jQuery( this ).show();
|
|
|
|
jQuery( this ).show();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
jQuery( this ).hide();
|
|
|
|
jQuery( this ).hide();
|
|
|
@ -6982,6 +6963,7 @@ jQuery.extend({
|
|
|
|
"fontWeight": true,
|
|
|
|
"fontWeight": true,
|
|
|
|
"lineHeight": true,
|
|
|
|
"lineHeight": true,
|
|
|
|
"opacity": true,
|
|
|
|
"opacity": true,
|
|
|
|
|
|
|
|
"order": true,
|
|
|
|
"orphans": true,
|
|
|
|
"orphans": true,
|
|
|
|
"widows": true,
|
|
|
|
"widows": true,
|
|
|
|
"zIndex": true,
|
|
|
|
"zIndex": true,
|
|
|
|