|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
/*!
|
|
|
|
|
* jQuery JavaScript Library v1.8.2
|
|
|
|
|
* jQuery JavaScript Library v1.8.3
|
|
|
|
|
* http://jquery.com/
|
|
|
|
|
*
|
|
|
|
|
* Includes Sizzle.js
|
|
|
|
@ -9,7 +9,7 @@
|
|
|
|
|
* Released under the MIT license
|
|
|
|
|
* http://jquery.org/license
|
|
|
|
|
*
|
|
|
|
|
* Date: Thu Sep 20 2012 21:13:05 GMT-0400 (Eastern Daylight Time)
|
|
|
|
|
* Date: Tue Nov 13 2012 08:20:33 GMT-0500 (Eastern Standard Time)
|
|
|
|
|
*/
|
|
|
|
|
(function( window, undefined ) {
|
|
|
|
|
var
|
|
|
|
@ -186,7 +186,7 @@ jQuery.fn = jQuery.prototype = {
|
|
|
|
|
selector: "",
|
|
|
|
|
|
|
|
|
|
// The current version of jQuery being used
|
|
|
|
|
jquery: "1.8.2",
|
|
|
|
|
jquery: "1.8.3",
|
|
|
|
|
|
|
|
|
|
// The default length of a jQuery object is 0
|
|
|
|
|
length: 0,
|
|
|
|
@ -999,8 +999,10 @@ jQuery.Callbacks = function( options ) {
|
|
|
|
|
(function add( args ) {
|
|
|
|
|
jQuery.each( args, function( _, arg ) {
|
|
|
|
|
var type = jQuery.type( arg );
|
|
|
|
|
if ( type === "function" && ( !options.unique || !self.has( arg ) ) ) {
|
|
|
|
|
list.push( arg );
|
|
|
|
|
if ( type === "function" ) {
|
|
|
|
|
if ( !options.unique || !self.has( arg ) ) {
|
|
|
|
|
list.push( arg );
|
|
|
|
|
}
|
|
|
|
|
} else if ( arg && arg.length && type !== "string" ) {
|
|
|
|
|
// Inspect recursively
|
|
|
|
|
add( arg );
|
|
|
|
@ -1253,24 +1255,23 @@ jQuery.support = (function() {
|
|
|
|
|
clickFn,
|
|
|
|
|
div = document.createElement("div");
|
|
|
|
|
|
|
|
|
|
// Preliminary tests
|
|
|
|
|
// Setup
|
|
|
|
|
div.setAttribute( "className", "t" );
|
|
|
|
|
div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
|
|
|
|
|
|
|
|
|
|
// Support tests won't run in some limited or non-browser environments
|
|
|
|
|
all = div.getElementsByTagName("*");
|
|
|
|
|
a = div.getElementsByTagName("a")[ 0 ];
|
|
|
|
|
a.style.cssText = "top:1px;float:left;opacity:.5";
|
|
|
|
|
|
|
|
|
|
// Can't get basic test support
|
|
|
|
|
if ( !all || !all.length ) {
|
|
|
|
|
if ( !all || !a || !all.length ) {
|
|
|
|
|
return {};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// First batch of supports tests
|
|
|
|
|
// First batch of tests
|
|
|
|
|
select = document.createElement("select");
|
|
|
|
|
opt = select.appendChild( document.createElement("option") );
|
|
|
|
|
input = div.getElementsByTagName("input")[ 0 ];
|
|
|
|
|
|
|
|
|
|
a.style.cssText = "top:1px;float:left;opacity:.5";
|
|
|
|
|
support = {
|
|
|
|
|
// IE strips leading whitespace when .innerHTML is used
|
|
|
|
|
leadingWhitespace: ( div.firstChild.nodeType === 3 ),
|
|
|
|
@ -1312,7 +1313,7 @@ jQuery.support = (function() {
|
|
|
|
|
// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
|
|
|
|
|
getSetAttribute: div.className !== "t",
|
|
|
|
|
|
|
|
|
|
// Tests for enctype support on a form(#6743)
|
|
|
|
|
// Tests for enctype support on a form (#6743)
|
|
|
|
|
enctype: !!document.createElement("form").enctype,
|
|
|
|
|
|
|
|
|
|
// Makes sure cloning an html5 element does not cause problems
|
|
|
|
@ -2217,26 +2218,25 @@ jQuery.extend({
|
|
|
|
|
},
|
|
|
|
|
select: {
|
|
|
|
|
get: function( elem ) {
|
|
|
|
|
var value, i, max, option,
|
|
|
|
|
index = elem.selectedIndex,
|
|
|
|
|
values = [],
|
|
|
|
|
var value, option,
|
|
|
|
|
options = elem.options,
|
|
|
|
|
one = elem.type === "select-one";
|
|
|
|
|
|
|
|
|
|
// Nothing was selected
|
|
|
|
|
if ( index < 0 ) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
index = elem.selectedIndex,
|
|
|
|
|
one = elem.type === "select-one" || index < 0,
|
|
|
|
|
values = one ? null : [],
|
|
|
|
|
max = one ? index + 1 : options.length,
|
|
|
|
|
i = index < 0 ?
|
|
|
|
|
max :
|
|
|
|
|
one ? index : 0;
|
|
|
|
|
|
|
|
|
|
// Loop through all the selected options
|
|
|
|
|
i = one ? index : 0;
|
|
|
|
|
max = one ? index + 1 : options.length;
|
|
|
|
|
for ( ; i < max; i++ ) {
|
|
|
|
|
option = options[ i ];
|
|
|
|
|
|
|
|
|
|
// Don't return options that are disabled or in a disabled optgroup
|
|
|
|
|
if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
|
|
|
|
|
(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
|
|
|
|
|
// oldIE doesn't update selected after form reset (#2551)
|
|
|
|
|
if ( ( option.selected || i === index ) &&
|
|
|
|
|
// Don't return options that are disabled or in a disabled optgroup
|
|
|
|
|
( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
|
|
|
|
|
( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
|
|
|
|
|
|
|
|
|
|
// Get the specific value for the option
|
|
|
|
|
value = jQuery( option ).val();
|
|
|
|
@ -2251,11 +2251,6 @@ jQuery.extend({
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
|
|
|
|
|
if ( one && !values.length && options.length ) {
|
|
|
|
|
return jQuery( options[ index ] ).val();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return values;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
@ -3233,7 +3228,7 @@ jQuery.removeEvent = document.removeEventListener ?
|
|
|
|
|
|
|
|
|
|
if ( elem.detachEvent ) {
|
|
|
|
|
|
|
|
|
|
// #8545, #7054, preventing memory leaks for custom events in IE6-8 –
|
|
|
|
|
// #8545, #7054, preventing memory leaks for custom events in IE6-8
|
|
|
|
|
// detachEvent needed property on element, by name of that event, to properly expose it to GC
|
|
|
|
|
if ( typeof elem[ name ] === "undefined" ) {
|
|
|
|
|
elem[ name ] = null;
|
|
|
|
@ -3725,7 +3720,8 @@ var cachedruns,
|
|
|
|
|
delete cache[ keys.shift() ];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (cache[ key ] = value);
|
|
|
|
|
// Retrieve with (key + " ") to avoid collision with native Object.prototype properties (see Issue #157)
|
|
|
|
|
return (cache[ key + " " ] = value);
|
|
|
|
|
}, cache );
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
@ -4259,13 +4255,13 @@ Expr = Sizzle.selectors = {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
"CLASS": function( className ) {
|
|
|
|
|
var pattern = classCache[ expando ][ className ];
|
|
|
|
|
if ( !pattern ) {
|
|
|
|
|
pattern = classCache( className, new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)") );
|
|
|
|
|
}
|
|
|
|
|
return function( elem ) {
|
|
|
|
|
return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );
|
|
|
|
|
};
|
|
|
|
|
var pattern = classCache[ expando ][ className + " " ];
|
|
|
|
|
|
|
|
|
|
return pattern ||
|
|
|
|
|
(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
|
|
|
|
|
classCache( className, function( elem ) {
|
|
|
|
|
return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
"ATTR": function( name, operator, check ) {
|
|
|
|
@ -4511,7 +4507,7 @@ Expr = Sizzle.selectors = {
|
|
|
|
|
|
|
|
|
|
"focus": function( elem ) {
|
|
|
|
|
var doc = elem.ownerDocument;
|
|
|
|
|
return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href);
|
|
|
|
|
return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
"active": function( elem ) {
|
|
|
|
@ -4519,11 +4515,11 @@ Expr = Sizzle.selectors = {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// Positional types
|
|
|
|
|
"first": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
|
|
|
|
"first": createPositionalPseudo(function() {
|
|
|
|
|
return [ 0 ];
|
|
|
|
|
}),
|
|
|
|
|
|
|
|
|
|
"last": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
|
|
|
|
"last": createPositionalPseudo(function( matchIndexes, length ) {
|
|
|
|
|
return [ length - 1 ];
|
|
|
|
|
}),
|
|
|
|
|
|
|
|
|
@ -4531,14 +4527,14 @@ Expr = Sizzle.selectors = {
|
|
|
|
|
return [ argument < 0 ? argument + length : argument ];
|
|
|
|
|
}),
|
|
|
|
|
|
|
|
|
|
"even": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
|
|
|
|
"even": createPositionalPseudo(function( matchIndexes, length ) {
|
|
|
|
|
for ( var i = 0; i < length; i += 2 ) {
|
|
|
|
|
matchIndexes.push( i );
|
|
|
|
|
}
|
|
|
|
|
return matchIndexes;
|
|
|
|
|
}),
|
|
|
|
|
|
|
|
|
|
"odd": createPositionalPseudo(function( matchIndexes, length, argument ) {
|
|
|
|
|
"odd": createPositionalPseudo(function( matchIndexes, length ) {
|
|
|
|
|
for ( var i = 1; i < length; i += 2 ) {
|
|
|
|
|
matchIndexes.push( i );
|
|
|
|
|
}
|
|
|
|
@ -4659,7 +4655,9 @@ baseHasDuplicate = !hasDuplicate;
|
|
|
|
|
// Document sorting and removing duplicates
|
|
|
|
|
Sizzle.uniqueSort = function( results ) {
|
|
|
|
|
var elem,
|
|
|
|
|
i = 1;
|
|
|
|
|
duplicates = [],
|
|
|
|
|
i = 1,
|
|
|
|
|
j = 0;
|
|
|
|
|
|
|
|
|
|
hasDuplicate = baseHasDuplicate;
|
|
|
|
|
results.sort( sortOrder );
|
|
|
|
@ -4667,9 +4665,12 @@ Sizzle.uniqueSort = function( results ) {
|
|
|
|
|
if ( hasDuplicate ) {
|
|
|
|
|
for ( ; (elem = results[i]); i++ ) {
|
|
|
|
|
if ( elem === results[ i - 1 ] ) {
|
|
|
|
|
results.splice( i--, 1 );
|
|
|
|
|
j = duplicates.push( i );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
while ( j-- ) {
|
|
|
|
|
results.splice( duplicates[ j ], 1 );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return results;
|
|
|
|
@ -4680,8 +4681,9 @@ Sizzle.error = function( msg ) {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function tokenize( selector, parseOnly ) {
|
|
|
|
|
var matched, match, tokens, type, soFar, groups, preFilters,
|
|
|
|
|
cached = tokenCache[ expando ][ selector ];
|
|
|
|
|
var matched, match, tokens, type,
|
|
|
|
|
soFar, groups, preFilters,
|
|
|
|
|
cached = tokenCache[ expando ][ selector + " " ];
|
|
|
|
|
|
|
|
|
|
if ( cached ) {
|
|
|
|
|
return parseOnly ? 0 : cached.slice( 0 );
|
|
|
|
@ -4696,7 +4698,8 @@ function tokenize( selector, parseOnly ) {
|
|
|
|
|
// Comma and first run
|
|
|
|
|
if ( !matched || (match = rcomma.exec( soFar )) ) {
|
|
|
|
|
if ( match ) {
|
|
|
|
|
soFar = soFar.slice( match[0].length );
|
|
|
|
|
// Don't consume trailing commas as valid
|
|
|
|
|
soFar = soFar.slice( match[0].length ) || soFar;
|
|
|
|
|
}
|
|
|
|
|
groups.push( tokens = [] );
|
|
|
|
|
}
|
|
|
|
@ -4715,8 +4718,7 @@ function tokenize( selector, parseOnly ) {
|
|
|
|
|
// Filters
|
|
|
|
|
for ( type in Expr.filter ) {
|
|
|
|
|
if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
|
|
|
|
|
// The last two arguments here are (context, xml) for backCompat
|
|
|
|
|
(match = preFilters[ type ]( match, document, true ))) ) {
|
|
|
|
|
(match = preFilters[ type ]( match ))) ) {
|
|
|
|
|
|
|
|
|
|
tokens.push( matched = new Token( match.shift() ) );
|
|
|
|
|
soFar = soFar.slice( matched.length );
|
|
|
|
@ -4836,18 +4838,13 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
|
|
|
|
|
postFinder = setMatcher( postFinder, postSelector );
|
|
|
|
|
}
|
|
|
|
|
return markFunction(function( seed, results, context, xml ) {
|
|
|
|
|
// Positional selectors apply to seed elements, so it is invalid to follow them with relative ones
|
|
|
|
|
if ( seed && postFinder ) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var i, elem, postFilterIn,
|
|
|
|
|
var temp, i, elem,
|
|
|
|
|
preMap = [],
|
|
|
|
|
postMap = [],
|
|
|
|
|
preexisting = results.length,
|
|
|
|
|
|
|
|
|
|
// Get initial elements from seed or context
|
|
|
|
|
elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [], seed ),
|
|
|
|
|
elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
|
|
|
|
|
|
|
|
|
|
// Prefilter to get matcher input, preserving a map for seed-results synchronization
|
|
|
|
|
matcherIn = preFilter && ( seed || !selector ) ?
|
|
|
|
@ -4872,27 +4869,45 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
|
|
|
|
|
|
|
|
|
|
// Apply postFilter
|
|
|
|
|
if ( postFilter ) {
|
|
|
|
|
postFilterIn = condense( matcherOut, postMap );
|
|
|
|
|
postFilter( postFilterIn, [], context, xml );
|
|
|
|
|
temp = condense( matcherOut, postMap );
|
|
|
|
|
postFilter( temp, [], context, xml );
|
|
|
|
|
|
|
|
|
|
// Un-match failing elements by moving them back to matcherIn
|
|
|
|
|
i = postFilterIn.length;
|
|
|
|
|
i = temp.length;
|
|
|
|
|
while ( i-- ) {
|
|
|
|
|
if ( (elem = postFilterIn[i]) ) {
|
|
|
|
|
if ( (elem = temp[i]) ) {
|
|
|
|
|
matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Keep seed and results synchronized
|
|
|
|
|
if ( seed ) {
|
|
|
|
|
// Ignore postFinder because it can't coexist with seed
|
|
|
|
|
i = preFilter && matcherOut.length;
|
|
|
|
|
while ( i-- ) {
|
|
|
|
|
if ( (elem = matcherOut[i]) ) {
|
|
|
|
|
seed[ preMap[i] ] = !(results[ preMap[i] ] = elem);
|
|
|
|
|
if ( postFinder || preFilter ) {
|
|
|
|
|
if ( postFinder ) {
|
|
|
|
|
// Get the final matcherOut by condensing this intermediate into postFinder contexts
|
|
|
|
|
temp = [];
|
|
|
|
|
i = matcherOut.length;
|
|
|
|
|
while ( i-- ) {
|
|
|
|
|
if ( (elem = matcherOut[i]) ) {
|
|
|
|
|
// Restore matcherIn since elem is not yet a final match
|
|
|
|
|
temp.push( (matcherIn[i] = elem) );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
postFinder( null, (matcherOut = []), temp, xml );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Move matched elements from seed to results to keep them synchronized
|
|
|
|
|
i = matcherOut.length;
|
|
|
|
|
while ( i-- ) {
|
|
|
|
|
if ( (elem = matcherOut[i]) &&
|
|
|
|
|
(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
|
|
|
|
|
|
|
|
|
|
seed[temp] = !(results[temp] = elem);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Add elements to results, through postFinder if defined
|
|
|
|
|
} else {
|
|
|
|
|
matcherOut = condense(
|
|
|
|
|
matcherOut === results ?
|
|
|
|
@ -4933,7 +4948,6 @@ function matcherFromTokens( tokens ) {
|
|
|
|
|
if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
|
|
|
|
|
matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];
|
|
|
|
|
} else {
|
|
|
|
|
// The concatenated values are (context, xml) for backCompat
|
|
|
|
|
matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
|
|
|
|
|
|
|
|
|
|
// Return special upon seeing a positional matcher
|
|
|
|
@ -5062,7 +5076,7 @@ compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
|
|
|
|
|
var i,
|
|
|
|
|
setMatchers = [],
|
|
|
|
|
elementMatchers = [],
|
|
|
|
|
cached = compilerCache[ expando ][ selector ];
|
|
|
|
|
cached = compilerCache[ expando ][ selector + " " ];
|
|
|
|
|
|
|
|
|
|
if ( !cached ) {
|
|
|
|
|
// Generate a function of recursive functions that can be used to check each element
|
|
|
|
@ -5085,11 +5099,11 @@ compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
|
|
|
|
|
return cached;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
function multipleContexts( selector, contexts, results, seed ) {
|
|
|
|
|
function multipleContexts( selector, contexts, results ) {
|
|
|
|
|
var i = 0,
|
|
|
|
|
len = contexts.length;
|
|
|
|
|
for ( ; i < len; i++ ) {
|
|
|
|
|
Sizzle( selector, contexts[i], results, seed );
|
|
|
|
|
Sizzle( selector, contexts[i], results );
|
|
|
|
|
}
|
|
|
|
|
return results;
|
|
|
|
|
}
|
|
|
|
@ -5167,15 +5181,14 @@ if ( document.querySelectorAll ) {
|
|
|
|
|
rescape = /'|\\/g,
|
|
|
|
|
rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
|
|
|
|
|
|
|
|
|
|
// qSa(:focus) reports false when true (Chrome 21),
|
|
|
|
|
// qSa(:focus) reports false when true (Chrome 21), no need to also add to buggyMatches since matches checks buggyQSA
|
|
|
|
|
// A support test would require too much code (would include document ready)
|
|
|
|
|
rbuggyQSA = [":focus"],
|
|
|
|
|
rbuggyQSA = [ ":focus" ],
|
|
|
|
|
|
|
|
|
|
// matchesSelector(:focus) reports false when true (Chrome 21),
|
|
|
|
|
// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
|
|
|
|
|
// A support test would require too much code (would include document ready)
|
|
|
|
|
// just skip matchesSelector for :active
|
|
|
|
|
rbuggyMatches = [ ":active", ":focus" ],
|
|
|
|
|
rbuggyMatches = [ ":active" ],
|
|
|
|
|
matches = docElem.matchesSelector ||
|
|
|
|
|
docElem.mozMatchesSelector ||
|
|
|
|
|
docElem.webkitMatchesSelector ||
|
|
|
|
@ -5229,7 +5242,7 @@ if ( document.querySelectorAll ) {
|
|
|
|
|
// Only use querySelectorAll when not filtering,
|
|
|
|
|
// when this is not xml,
|
|
|
|
|
// and when no QSA bugs apply
|
|
|
|
|
if ( !seed && !xml && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
|
|
|
|
|
if ( !seed && !xml && !rbuggyQSA.test( selector ) ) {
|
|
|
|
|
var groups, i,
|
|
|
|
|
old = true,
|
|
|
|
|
nid = expando,
|
|
|
|
@ -5298,7 +5311,7 @@ if ( document.querySelectorAll ) {
|
|
|
|
|
expr = expr.replace( rattributeQuotes, "='$1']" );
|
|
|
|
|
|
|
|
|
|
// rbuggyMatches always contains :active, so no need for an existence check
|
|
|
|
|
if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && (!rbuggyQSA || !rbuggyQSA.test( expr )) ) {
|
|
|
|
|
if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && !rbuggyQSA.test( expr ) ) {
|
|
|
|
|
try {
|
|
|
|
|
var ret = matches.call( elem, expr );
|
|
|
|
|
|
|
|
|
@ -6533,7 +6546,7 @@ var curCSS, iframe, iframeDoc,
|
|
|
|
|
rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
|
|
|
|
|
rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
|
|
|
|
|
rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ),
|
|
|
|
|
elemdisplay = {},
|
|
|
|
|
elemdisplay = { BODY: "block" },
|
|
|
|
|
|
|
|
|
|
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
|
|
|
|
cssNormalTransform = {
|
|
|
|
@ -6814,7 +6827,9 @@ if ( window.getComputedStyle ) {
|
|
|
|
|
|
|
|
|
|
if ( computed ) {
|
|
|
|
|
|
|
|
|
|
ret = computed[ name ];
|
|
|
|
|
// getPropertyValue is only needed for .css('filter') in IE9, see #12537
|
|
|
|
|
ret = computed.getPropertyValue( name ) || computed[ name ];
|
|
|
|
|
|
|
|
|
|
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
|
|
|
|
|
ret = jQuery.style( elem, name );
|
|
|
|
|
}
|
|
|
|
@ -7843,9 +7858,12 @@ jQuery.extend({
|
|
|
|
|
|
|
|
|
|
// A cross-domain request is in order when we have a protocol:host:port mismatch
|
|
|
|
|
if ( s.crossDomain == null ) {
|
|
|
|
|
parts = rurl.exec( s.url.toLowerCase() ) || false;
|
|
|
|
|
s.crossDomain = parts && ( parts.join(":") + ( parts[ 3 ] ? "" : parts[ 1 ] === "http:" ? 80 : 443 ) ) !==
|
|
|
|
|
( ajaxLocParts.join(":") + ( ajaxLocParts[ 3 ] ? "" : ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) );
|
|
|
|
|
parts = rurl.exec( s.url.toLowerCase() );
|
|
|
|
|
s.crossDomain = !!( parts &&
|
|
|
|
|
( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
|
|
|
|
|
( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
|
|
|
|
|
( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Convert data if not already a string
|
|
|
|
@ -8464,7 +8482,7 @@ if ( jQuery.support.ajax ) {
|
|
|
|
|
// on any attempt to access responseText (#11426)
|
|
|
|
|
try {
|
|
|
|
|
responses.text = xhr.responseText;
|
|
|
|
|
} catch( _ ) {
|
|
|
|
|
} catch( e ) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Firefox throws an exception when accessing
|
|
|
|
@ -8617,7 +8635,9 @@ function Animation( elem, properties, options ) {
|
|
|
|
|
tick = function() {
|
|
|
|
|
var currentTime = fxNow || createFxNow(),
|
|
|
|
|
remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
|
|
|
|
|
percent = 1 - ( remaining / animation.duration || 0 ),
|
|
|
|
|
// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
|
|
|
|
|
temp = remaining / animation.duration || 0,
|
|
|
|
|
percent = 1 - temp,
|
|
|
|
|
index = 0,
|
|
|
|
|
length = animation.tweens.length;
|
|
|
|
|
|
|
|
|
@ -8769,7 +8789,7 @@ jQuery.Animation = jQuery.extend( Animation, {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function defaultPrefilter( elem, props, opts ) {
|
|
|
|
|
var index, prop, value, length, dataShow, tween, hooks, oldfire,
|
|
|
|
|
var index, prop, value, length, dataShow, toggle, tween, hooks, oldfire,
|
|
|
|
|
anim = this,
|
|
|
|
|
style = elem.style,
|
|
|
|
|
orig = {},
|
|
|
|
@ -8843,6 +8863,7 @@ function defaultPrefilter( elem, props, opts ) {
|
|
|
|
|
value = props[ index ];
|
|
|
|
|
if ( rfxtypes.exec( value ) ) {
|
|
|
|
|
delete props[ index ];
|
|
|
|
|
toggle = toggle || value === "toggle";
|
|
|
|
|
if ( value === ( hidden ? "hide" : "show" ) ) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
@ -8853,6 +8874,14 @@ function defaultPrefilter( elem, props, opts ) {
|
|
|
|
|
length = handled.length;
|
|
|
|
|
if ( length ) {
|
|
|
|
|
dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} );
|
|
|
|
|
if ( "hidden" in dataShow ) {
|
|
|
|
|
hidden = dataShow.hidden;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// store state if its toggle - enables .stop().toggle() to "reverse"
|
|
|
|
|
if ( toggle ) {
|
|
|
|
|
dataShow.hidden = !hidden;
|
|
|
|
|
}
|
|
|
|
|
if ( hidden ) {
|
|
|
|
|
jQuery( elem ).show();
|
|
|
|
|
} else {
|
|
|
|
@ -9149,6 +9178,8 @@ jQuery.fx.tick = function() {
|
|
|
|
|
timers = jQuery.timers,
|
|
|
|
|
i = 0;
|
|
|
|
|
|
|
|
|
|
fxNow = jQuery.now();
|
|
|
|
|
|
|
|
|
|
for ( ; i < timers.length; i++ ) {
|
|
|
|
|
timer = timers[ i ];
|
|
|
|
|
// Checks the timer has not already been removed
|
|
|
|
@ -9160,6 +9191,7 @@ jQuery.fx.tick = function() {
|
|
|
|
|
if ( !timers.length ) {
|
|
|
|
|
jQuery.fx.stop();
|
|
|
|
|
}
|
|
|
|
|
fxNow = undefined;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
jQuery.fx.timer = function( timer ) {
|