Merge pull request #3775 from collinanderson/jquery1.11.2

Upgrade jQuery from 1.11.1 to 1.11.2
This commit is contained in:
Marc Tamlyn 2014-12-23 10:26:39 +00:00
commit 803947161b
4 changed files with 120 additions and 82 deletions

View File

@ -1,5 +1,5 @@
/*! /*!
* jQuery JavaScript Library v1.11.1 * jQuery JavaScript Library v1.11.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: 2014-05-01T17:42Z * Date: 2014-12-17T15:27Z
*/ */
(function( global, factory ) { (function( global, factory ) {
@ -64,7 +64,7 @@ var support = {};
var var
version = "1.11.1", version = "1.11.2",
// Define a local copy of jQuery // Define a local copy of jQuery
jQuery = function( selector, context ) { jQuery = function( selector, context ) {
@ -269,7 +269,8 @@ jQuery.extend({
// parseFloat NaNs numeric-cast false positives (null|true|false|"") // parseFloat NaNs numeric-cast false positives (null|true|false|"")
// ...but misinterprets leading-number strings, particularly hex literals ("0x...") // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
// subtraction forces infinities to NaN // subtraction forces infinities to NaN
return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; // adding 1 corrects loss of precision from parseFloat (#15100)
return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
}, },
isEmptyObject: function( obj ) { isEmptyObject: function( obj ) {
@ -584,14 +585,14 @@ function isArraylike( obj ) {
} }
var Sizzle = var Sizzle =
/*! /*!
* Sizzle CSS Selector Engine v1.10.19 * Sizzle CSS Selector Engine v2.2.0-pre
* http://sizzlejs.com/ * http://sizzlejs.com/
* *
* Copyright 2013 jQuery Foundation, Inc. and other contributors * Copyright 2008, 2014 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: 2014-04-18 * Date: 2014-12-16
*/ */
(function( window ) { (function( window ) {
@ -618,7 +619,7 @@ var i,
contains, contains,
// Instance-specific data // Instance-specific data
expando = "sizzle" + -(new Date()), expando = "sizzle" + 1 * new Date(),
preferredDoc = window.document, preferredDoc = window.document,
dirruns = 0, dirruns = 0,
done = 0, done = 0,
@ -633,7 +634,6 @@ var i,
}, },
// General-purpose constants // General-purpose constants
strundefined = typeof undefined,
MAX_NEGATIVE = 1 << 31, MAX_NEGATIVE = 1 << 31,
// Instance methods // Instance methods
@ -643,12 +643,13 @@ var i,
push_native = arr.push, push_native = arr.push,
push = arr.push, push = arr.push,
slice = arr.slice, slice = arr.slice,
// Use a stripped-down indexOf if we can't use a native one // Use a stripped-down indexOf as it's faster than native
indexOf = arr.indexOf || function( elem ) { // http://jsperf.com/thor-indexof-vs-for/5
indexOf = function( list, elem ) {
var i = 0, var i = 0,
len = this.length; len = list.length;
for ( ; i < len; i++ ) { for ( ; i < len; i++ ) {
if ( this[i] === elem ) { if ( list[i] === elem ) {
return i; return i;
} }
} }
@ -688,6 +689,7 @@ var i,
")\\)|)", ")\\)|)",
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
rwhitespace = new RegExp( whitespace + "+", "g" ),
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
@ -739,6 +741,14 @@ var i,
String.fromCharCode( high + 0x10000 ) : String.fromCharCode( high + 0x10000 ) :
// Supplemental Plane codepoint (surrogate pair) // Supplemental Plane codepoint (surrogate pair)
String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
},
// Used for iframes
// See setDocument()
// Removing the function wrapper causes a "Permission Denied"
// error in IE
unloadHandler = function() {
setDocument();
}; };
// Optimize for push.apply( _, NodeList ) // Optimize for push.apply( _, NodeList )
@ -781,19 +791,18 @@ function Sizzle( selector, context, results, seed ) {
context = context || document; context = context || document;
results = results || []; results = results || [];
nodeType = context.nodeType;
if ( typeof selector !== "string" || !selector ||
nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
if ( !selector || typeof selector !== "string" ) {
return results; return results;
} }
if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { if ( !seed && documentIsHTML ) {
return [];
}
if ( documentIsHTML && !seed ) { // Try to shortcut find operations when possible (e.g., not under DocumentFragment)
if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
// Shortcuts
if ( (match = rquickExpr.exec( selector )) ) {
// Speed-up: Sizzle("#ID") // Speed-up: Sizzle("#ID")
if ( (m = match[1]) ) { if ( (m = match[1]) ) {
if ( nodeType === 9 ) { if ( nodeType === 9 ) {
@ -825,7 +834,7 @@ function Sizzle( selector, context, results, seed ) {
return results; return results;
// Speed-up: Sizzle(".CLASS") // Speed-up: Sizzle(".CLASS")
} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { } else if ( (m = match[3]) && support.getElementsByClassName ) {
push.apply( results, context.getElementsByClassName( m ) ); push.apply( results, context.getElementsByClassName( m ) );
return results; return results;
} }
@ -835,7 +844,7 @@ function Sizzle( selector, context, results, seed ) {
if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
nid = old = expando; nid = old = expando;
newContext = context; newContext = context;
newSelector = nodeType === 9 && selector; newSelector = nodeType !== 1 && selector;
// qSA works strangely on Element-rooted queries // qSA works strangely on Element-rooted queries
// We can work around this by specifying an extra ID on the root // We can work around this by specifying an extra ID on the root
@ -1022,7 +1031,7 @@ function createPositionalPseudo( fn ) {
* @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
*/ */
function testContext( context ) { function testContext( context ) {
return context && typeof context.getElementsByTagName !== strundefined && context; return context && typeof context.getElementsByTagName !== "undefined" && context;
} }
// Expose support vars for convenience // Expose support vars for convenience
@ -1046,9 +1055,8 @@ isXML = Sizzle.isXML = function( elem ) {
* @returns {Object} Returns the current document * @returns {Object} Returns the current document
*/ */
setDocument = Sizzle.setDocument = function( node ) { setDocument = Sizzle.setDocument = function( node ) {
var hasCompare, var hasCompare, parent,
doc = node ? node.ownerDocument || node : preferredDoc, doc = node ? node.ownerDocument || node : preferredDoc;
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 ) {
@ -1058,9 +1066,7 @@ setDocument = Sizzle.setDocument = function( node ) {
// Set our document // Set our document
document = doc; document = doc;
docElem = doc.documentElement; docElem = doc.documentElement;
parent = doc.defaultView;
// Support tests
documentIsHTML = !isXML( doc );
// 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,
@ -1069,21 +1075,22 @@ setDocument = Sizzle.setDocument = function( node ) {
if ( parent && parent !== parent.top ) { if ( parent && parent !== parent.top ) {
// IE11 does not have attachEvent, so all must suffer // IE11 does not have attachEvent, so all must suffer
if ( parent.addEventListener ) { if ( parent.addEventListener ) {
parent.addEventListener( "unload", function() { parent.addEventListener( "unload", unloadHandler, false );
setDocument();
}, false );
} else if ( parent.attachEvent ) { } else if ( parent.attachEvent ) {
parent.attachEvent( "onunload", function() { parent.attachEvent( "onunload", unloadHandler );
setDocument();
});
} }
} }
/* Support tests
---------------------------------------------------------------------- */
documentIsHTML = !isXML( doc );
/* Attributes /* Attributes
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
// 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 ) {
div.className = "i"; div.className = "i";
return !div.getAttribute("className"); return !div.getAttribute("className");
@ -1098,17 +1105,8 @@ setDocument = Sizzle.setDocument = function( node ) {
return !div.getElementsByTagName("*").length; return !div.getElementsByTagName("*").length;
}); });
// Check if getElementsByClassName can be trusted // Support: IE<9
support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { support.getElementsByClassName = rnative.test( doc.getElementsByClassName );
div.innerHTML = "<div class='a'></div><div class='a i'></div>";
// Support: Safari<4
// Catch class over-caching
div.firstChild.className = "i";
// Support: Opera<10
// Catch gEBCN failure to find non-leading classes
return div.getElementsByClassName("i").length === 2;
});
// Support: IE<10 // Support: IE<10
// Check if getElementById returns elements by name // Check if getElementById returns elements by name
@ -1122,7 +1120,7 @@ setDocument = Sizzle.setDocument = function( node ) {
// ID find and filter // ID find and filter
if ( support.getById ) { if ( support.getById ) {
Expr.find["ID"] = function( id, context ) { Expr.find["ID"] = function( id, context ) {
if ( typeof context.getElementById !== strundefined && documentIsHTML ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
var m = context.getElementById( id ); var m = context.getElementById( id );
// Check parentNode to catch when Blackberry 4.6 returns // Check parentNode to catch when Blackberry 4.6 returns
// nodes that are no longer in the document #6963 // nodes that are no longer in the document #6963
@ -1143,7 +1141,7 @@ setDocument = Sizzle.setDocument = function( node ) {
Expr.filter["ID"] = function( id ) { Expr.filter["ID"] = function( id ) {
var attrId = id.replace( runescape, funescape ); var attrId = id.replace( runescape, funescape );
return function( elem ) { return function( elem ) {
var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
return node && node.value === attrId; return node && node.value === attrId;
}; };
}; };
@ -1152,14 +1150,20 @@ setDocument = Sizzle.setDocument = function( node ) {
// Tag // Tag
Expr.find["TAG"] = support.getElementsByTagName ? Expr.find["TAG"] = support.getElementsByTagName ?
function( tag, context ) { function( tag, context ) {
if ( typeof context.getElementsByTagName !== strundefined ) { if ( typeof context.getElementsByTagName !== "undefined" ) {
return context.getElementsByTagName( tag ); return context.getElementsByTagName( tag );
// DocumentFragment nodes don't have gEBTN
} else if ( support.qsa ) {
return context.querySelectorAll( tag );
} }
} : } :
function( tag, context ) { function( tag, context ) {
var elem, var elem,
tmp = [], tmp = [],
i = 0, i = 0,
// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
results = context.getElementsByTagName( tag ); results = context.getElementsByTagName( tag );
// Filter out possible comments // Filter out possible comments
@ -1177,7 +1181,7 @@ setDocument = Sizzle.setDocument = function( node ) {
// Class // Class
Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { if ( documentIsHTML ) {
return context.getElementsByClassName( className ); return context.getElementsByClassName( className );
} }
}; };
@ -1206,13 +1210,15 @@ setDocument = Sizzle.setDocument = function( node ) {
// setting a boolean content attribute, // setting a boolean content attribute,
// since its presence should be enough // since its presence should be enough
// http://bugs.jquery.com/ticket/12359 // http://bugs.jquery.com/ticket/12359
div.innerHTML = "<select msallowclip=''><option selected=''></option></select>"; docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
"<select id='" + expando + "-\f]' msallowcapture=''>" +
"<option selected=''></option></select>";
// Support: IE8, Opera 11-12.16 // Support: IE8, Opera 11-12.16
// Nothing should be selected when empty strings follow ^= or $= or *= // Nothing should be selected when empty strings follow ^= or $= or *=
// The test attribute must be unknown in Opera but "safe" for WinRT // The test attribute must be unknown in Opera but "safe" for WinRT
// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
if ( div.querySelectorAll("[msallowclip^='']").length ) { if ( div.querySelectorAll("[msallowcapture^='']").length ) {
rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
} }
@ -1222,12 +1228,24 @@ setDocument = Sizzle.setDocument = function( node ) {
rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
} }
// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+
if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
rbuggyQSA.push("~=");
}
// Webkit/Opera - :checked should return selected option elements // Webkit/Opera - :checked should return selected option elements
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
// IE8 throws error here and will not see later tests // IE8 throws error here and will not see later tests
if ( !div.querySelectorAll(":checked").length ) { if ( !div.querySelectorAll(":checked").length ) {
rbuggyQSA.push(":checked"); rbuggyQSA.push(":checked");
} }
// Support: Safari 8+, iOS 8+
// https://bugs.webkit.org/show_bug.cgi?id=136851
// In-page `selector#id sibing-combinator selector` fails
if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
rbuggyQSA.push(".#.+[+~]");
}
}); });
assert(function( div ) { assert(function( div ) {
@ -1344,7 +1362,7 @@ setDocument = Sizzle.setDocument = function( node ) {
// Maintain original order // Maintain original order
return sortInput ? return sortInput ?
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
0; 0;
} }
@ -1371,7 +1389,7 @@ setDocument = Sizzle.setDocument = function( node ) {
aup ? -1 : aup ? -1 :
bup ? 1 : bup ? 1 :
sortInput ? sortInput ?
( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
0; 0;
// If the nodes are siblings, we can do a quick check // If the nodes are siblings, we can do a quick check
@ -1434,7 +1452,7 @@ Sizzle.matchesSelector = function( elem, expr ) {
elem.document && elem.document.nodeType !== 11 ) { elem.document && elem.document.nodeType !== 11 ) {
return ret; return ret;
} }
} catch(e) {} } catch (e) {}
} }
return Sizzle( expr, document, null, [ elem ] ).length > 0; return Sizzle( expr, document, null, [ elem ] ).length > 0;
@ -1653,7 +1671,7 @@ Expr = Sizzle.selectors = {
return pattern || return pattern ||
(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
classCache( className, function( elem ) { classCache( className, function( elem ) {
return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
}); });
}, },
@ -1675,7 +1693,7 @@ Expr = Sizzle.selectors = {
operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "^=" ? check && result.indexOf( check ) === 0 :
operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "*=" ? check && result.indexOf( check ) > -1 :
operator === "$=" ? check && result.slice( -check.length ) === check : operator === "$=" ? check && result.slice( -check.length ) === check :
operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
false; false;
}; };
@ -1795,7 +1813,7 @@ Expr = Sizzle.selectors = {
matched = fn( seed, argument ), matched = fn( seed, argument ),
i = matched.length; i = matched.length;
while ( i-- ) { while ( i-- ) {
idx = indexOf.call( seed, matched[i] ); idx = indexOf( seed, matched[i] );
seed[ idx ] = !( matches[ idx ] = matched[i] ); seed[ idx ] = !( matches[ idx ] = matched[i] );
} }
}) : }) :
@ -1834,6 +1852,8 @@ Expr = Sizzle.selectors = {
function( elem, context, xml ) { function( elem, context, xml ) {
input[0] = elem; input[0] = elem;
matcher( input, null, xml, results ); matcher( input, null, xml, results );
// Don't keep the element (issue #299)
input[0] = null;
return !results.pop(); return !results.pop();
}; };
}), }),
@ -1845,6 +1865,7 @@ Expr = Sizzle.selectors = {
}), }),
"contains": markFunction(function( text ) { "contains": markFunction(function( text ) {
text = text.replace( runescape, funescape );
return function( elem ) { return function( elem ) {
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
}; };
@ -2266,7 +2287,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS
i = matcherOut.length; i = matcherOut.length;
while ( i-- ) { while ( i-- ) {
if ( (elem = matcherOut[i]) && if ( (elem = matcherOut[i]) &&
(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
seed[temp] = !(results[temp] = elem); seed[temp] = !(results[temp] = elem);
} }
@ -2301,13 +2322,16 @@ function matcherFromTokens( tokens ) {
return elem === checkContext; return elem === checkContext;
}, implicitRelative, true ), }, implicitRelative, true ),
matchAnyContext = addCombinator( function( elem ) { matchAnyContext = addCombinator( function( elem ) {
return indexOf.call( checkContext, elem ) > -1; return indexOf( checkContext, elem ) > -1;
}, implicitRelative, true ), }, implicitRelative, true ),
matchers = [ function( elem, context, xml ) { matchers = [ function( elem, context, xml ) {
return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
(checkContext = context).nodeType ? (checkContext = context).nodeType ?
matchContext( elem, context, xml ) : matchContext( elem, context, xml ) :
matchAnyContext( elem, context, xml ) ); matchAnyContext( elem, context, xml ) );
// Avoid hanging onto element (issue #299)
checkContext = null;
return ret;
} ]; } ];
for ( ; i < len; i++ ) { for ( ; i < len; i++ ) {
@ -2557,7 +2581,7 @@ select = Sizzle.select = function( selector, context, results, seed ) {
// Sort stability // Sort stability
support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
// Support: Chrome<14 // Support: Chrome 14-35+
// Always assume duplicates if they aren't passed to the comparison function // Always assume duplicates if they aren't passed to the comparison function
support.detectDuplicates = !!hasDuplicate; support.detectDuplicates = !!hasDuplicate;
@ -6115,7 +6139,14 @@ var getStyles, curCSS,
if ( window.getComputedStyle ) { if ( window.getComputedStyle ) {
getStyles = function( elem ) { getStyles = function( elem ) {
// Support: IE<=11+, Firefox<=30+ (#15098, #14150)
// IE throws on elements created in popups
// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
if ( elem.ownerDocument.defaultView.opener ) {
return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
}
return window.getComputedStyle( elem, null );
}; };
curCSS = function( elem, name, computed ) { curCSS = function( elem, name, computed ) {
@ -6363,6 +6394,8 @@ function addGetHookIf( conditionFn, hookFn ) {
reliableMarginRightVal = reliableMarginRightVal =
!parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight ); !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight );
div.removeChild( contents );
} }
// Support: IE8 // Support: IE8
@ -9070,7 +9103,8 @@ jQuery.extend({
} }
// We can fire global events as of now if asked to // We can fire global events as of now if asked to
fireGlobals = s.global; // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
fireGlobals = jQuery.event && s.global;
// Watch for a new set of requests // Watch for a new set of requests
if ( fireGlobals && jQuery.active++ === 0 ) { if ( fireGlobals && jQuery.active++ === 0 ) {
@ -9329,13 +9363,6 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
}; };
}); });
// Attach a bunch of functions for handling common AJAX events
jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
jQuery.fn[ type ] = function( fn ) {
return this.on( type, fn );
};
});
jQuery._evalUrl = function( url ) { jQuery._evalUrl = function( url ) {
return jQuery.ajax({ return jQuery.ajax({
@ -9561,8 +9588,9 @@ var xhrId = 0,
// Support: IE<10 // Support: IE<10
// Open requests must be manually aborted on unload (#5280) // Open requests must be manually aborted on unload (#5280)
if ( window.ActiveXObject ) { // See https://support.microsoft.com/kb/2856746 for more info
jQuery( window ).on( "unload", function() { if ( window.attachEvent ) {
window.attachEvent( "onunload", function() {
for ( var key in xhrCallbacks ) { for ( var key in xhrCallbacks ) {
xhrCallbacks[ key ]( undefined, true ); xhrCallbacks[ key ]( undefined, true );
} }
@ -9996,6 +10024,16 @@ jQuery.fn.load = function( url, params, callback ) {
// Attach a bunch of functions for handling common AJAX events
jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) {
jQuery.fn[ type ] = function( fn ) {
return this.on( type, fn );
};
});
jQuery.expr.filters.animated = function( elem ) { jQuery.expr.filters.animated = function( elem ) {
return jQuery.grep(jQuery.timers, function( fn ) { return jQuery.grep(jQuery.timers, function( fn ) {
return elem === fn.elem; return elem === fn.elem;

File diff suppressed because one or more lines are too long

View File

@ -1848,13 +1848,13 @@ jQuery
Django admin Javascript makes use of the `jQuery`_ library. Django admin Javascript makes use of the `jQuery`_ library.
To avoid conflicts with user-supplied scripts or libraries, Django's jQuery To avoid conflicts with user-supplied scripts or libraries, Django's jQuery
(version 1.11.1) is namespaced as ``django.jQuery``. If you want to use jQuery (version 1.11.2) is namespaced as ``django.jQuery``. If you want to use jQuery
in your own admin JavaScript without including a second copy, you can use the in your own admin JavaScript without including a second copy, you can use the
``django.jQuery`` object on changelist and add/edit views. ``django.jQuery`` object on changelist and add/edit views.
.. versionchanged:: 1.8 .. versionchanged:: 1.8
The embedded jQuery has been upgraded from 1.9.1 to 1.11.1. The embedded jQuery has been upgraded from 1.9.1 to 1.11.2.
The :class:`ModelAdmin` class requires jQuery by default, so there is no need The :class:`ModelAdmin` class requires jQuery by default, so there is no need
to add jQuery to your ``ModelAdmin``s list of media resources unless you have to add jQuery to your ``ModelAdmin``s list of media resources unless you have

View File

@ -116,7 +116,7 @@ Minor features
<django.contrib.admin.ModelAdmin.delete_view>` displays a summary of objects <django.contrib.admin.ModelAdmin.delete_view>` displays a summary of objects
to be deleted on the deletion confirmation page. to be deleted on the deletion confirmation page.
* The jQuery library embedded in the admin has been upgraded to version 1.11.1. * The jQuery library embedded in the admin has been upgraded to version 1.11.2.
* You can now specify :attr:`AdminSite.site_url * You can now specify :attr:`AdminSite.site_url
<django.contrib.admin.AdminSite.site_url>` in order to display a link to the <django.contrib.admin.AdminSite.site_url>` in order to display a link to the