| 1 | diff --git wp-includes/js/jquery/jquery-migrate.js wp-includes/js/jquery/jquery-migrate.js |
|---|
| 2 | index 27111d8..3185ed1 100644 |
|---|
| 3 | --- wp-includes/js/jquery/jquery-migrate.js |
|---|
| 4 | +++ wp-includes/js/jquery/jquery-migrate.js |
|---|
| 5 | @@ -1,5 +1,5 @@ |
|---|
| 6 | /*! |
|---|
| 7 | - * jQuery Migrate - v1.0.0 - 2013-01-14 |
|---|
| 8 | + * jQuery Migrate - v1.1.0 - 2013-01-31 |
|---|
| 9 | * https://github.com/jquery/jquery-migrate |
|---|
| 10 | * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT |
|---|
| 11 | */ |
|---|
| 12 | @@ -15,6 +15,16 @@ jQuery.migrateWarnings = []; |
|---|
| 13 | // Set to true to prevent console output; migrateWarnings still maintained |
|---|
| 14 | // jQuery.migrateMute = false; |
|---|
| 15 | |
|---|
| 16 | +// Show a message on the console so devs know we're active |
|---|
| 17 | +if ( !jQuery.migrateMute && window.console && console.log ) { |
|---|
| 18 | + console.log("JQMIGRATE: Logging is active"); |
|---|
| 19 | +} |
|---|
| 20 | + |
|---|
| 21 | +// Set to false to disable traces that appear with warnings |
|---|
| 22 | +if ( jQuery.migrateTrace === undefined ) { |
|---|
| 23 | + jQuery.migrateTrace = true; |
|---|
| 24 | +} |
|---|
| 25 | + |
|---|
| 26 | // Forget any warnings we've already given; public |
|---|
| 27 | jQuery.migrateReset = function() { |
|---|
| 28 | warnedAbout = {}; |
|---|
| 29 | @@ -27,6 +37,9 @@ function migrateWarn( msg) { |
|---|
| 30 | jQuery.migrateWarnings.push( msg ); |
|---|
| 31 | if ( window.console && console.warn && !jQuery.migrateMute ) { |
|---|
| 32 | console.warn( "JQMIGRATE: " + msg ); |
|---|
| 33 | + if ( jQuery.migrateTrace && console.trace ) { |
|---|
| 34 | + console.trace(); |
|---|
| 35 | + } |
|---|
| 36 | } |
|---|
| 37 | } |
|---|
| 38 | } |
|---|
| 39 | @@ -66,7 +79,7 @@ if ( document.compatMode === "BackCompat" ) { |
|---|
| 40 | |
|---|
| 41 | |
|---|
| 42 | var attrFn = {}, |
|---|
| 43 | - attr = jQuery.attr, |
|---|
| 44 | + oldAttr = jQuery.attr, |
|---|
| 45 | valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get || |
|---|
| 46 | function() { return null; }, |
|---|
| 47 | valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set || |
|---|
| 48 | @@ -83,15 +96,18 @@ jQuery.attr = function( elem, name, value, pass ) { |
|---|
| 49 | var lowerName = name.toLowerCase(), |
|---|
| 50 | nType = elem && elem.nodeType; |
|---|
| 51 | |
|---|
| 52 | - if ( pass ) { |
|---|
| 53 | + // Since pass is used internally, we only warn and shim for new jQuery |
|---|
| 54 | + // versions where there isn't a pass arg in the formal params |
|---|
| 55 | + if ( pass && oldAttr.length < 4 ) { |
|---|
| 56 | migrateWarn("jQuery.fn.attr( props, pass ) is deprecated"); |
|---|
| 57 | if ( elem && !rnoAttrNodeType.test( nType ) && jQuery.isFunction( jQuery.fn[ name ] ) ) { |
|---|
| 58 | return jQuery( elem )[ name ]( value ); |
|---|
| 59 | } |
|---|
| 60 | } |
|---|
| 61 | |
|---|
| 62 | - // Warn if user tries to set `type` since it breaks on IE 6/7/8 |
|---|
| 63 | - if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) ) { |
|---|
| 64 | + // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking |
|---|
| 65 | + // for disconnected elements we don't warn on $( "<button>", { type: "button" } ). |
|---|
| 66 | + if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) { |
|---|
| 67 | migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8"); |
|---|
| 68 | } |
|---|
| 69 | |
|---|
| 70 | @@ -131,11 +147,11 @@ jQuery.attr = function( elem, name, value, pass ) { |
|---|
| 71 | |
|---|
| 72 | // Warn only for attributes that can remain distinct from their properties post-1.9 |
|---|
| 73 | if ( ruseDefault.test( lowerName ) ) { |
|---|
| 74 | - migrateWarn( "jQuery.fn.attr(" + lowerName + ") may use property instead of attribute" ); |
|---|
| 75 | + migrateWarn( "jQuery.fn.attr('" + lowerName + "') may use property instead of attribute" ); |
|---|
| 76 | } |
|---|
| 77 | } |
|---|
| 78 | |
|---|
| 79 | - return attr.call( jQuery, elem, name, value ); |
|---|
| 80 | + return oldAttr.call( jQuery, elem, name, value ); |
|---|
| 81 | }; |
|---|
| 82 | |
|---|
| 83 | // attrHooks: value |
|---|
| 84 | @@ -146,7 +162,7 @@ jQuery.attrHooks.value = { |
|---|
| 85 | return valueAttrGet.apply( this, arguments ); |
|---|
| 86 | } |
|---|
| 87 | if ( nodeName !== "input" && nodeName !== "option" ) { |
|---|
| 88 | - migrateWarn("property-based jQuery.fn.attr('value') is deprecated"); |
|---|
| 89 | + migrateWarn("jQuery.fn.attr('value') no longer gets properties"); |
|---|
| 90 | } |
|---|
| 91 | return name in elem ? |
|---|
| 92 | elem.value : |
|---|
| 93 | @@ -158,7 +174,7 @@ jQuery.attrHooks.value = { |
|---|
| 94 | return valueAttrSet.apply( this, arguments ); |
|---|
| 95 | } |
|---|
| 96 | if ( nodeName !== "input" && nodeName !== "option" ) { |
|---|
| 97 | - migrateWarn("property-based jQuery.fn.attr('value', val) is deprecated"); |
|---|
| 98 | + migrateWarn("jQuery.fn.attr('value', val) no longer sets properties"); |
|---|
| 99 | } |
|---|
| 100 | // Does not return so that setAttribute is also used |
|---|
| 101 | elem.value = value; |
|---|
| 102 | @@ -168,8 +184,9 @@ jQuery.attrHooks.value = { |
|---|
| 103 | |
|---|
| 104 | var matched, browser, |
|---|
| 105 | oldInit = jQuery.fn.init, |
|---|
| 106 | - // Note this does NOT include the # XSS fix from 1.7! |
|---|
| 107 | - rquickExpr = /^(?:.*(<[\w\W]+>)[^>]*|#([\w\-]*))$/; |
|---|
| 108 | + oldParseJSON = jQuery.parseJSON, |
|---|
| 109 | + // Note this does NOT include the #9521 XSS fix from 1.7! |
|---|
| 110 | + rquickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*|#([\w\-]*))$/; |
|---|
| 111 | |
|---|
| 112 | // $(html) "looks like html" rule change |
|---|
| 113 | jQuery.fn.init = function( selector, context, rootjQuery ) { |
|---|
| 114 | @@ -195,6 +212,15 @@ jQuery.fn.init = function( selector, context, rootjQuery ) { |
|---|
| 115 | }; |
|---|
| 116 | jQuery.fn.init.prototype = jQuery.fn; |
|---|
| 117 | |
|---|
| 118 | +// Let $.parseJSON(falsy_value) return null |
|---|
| 119 | +jQuery.parseJSON = function( json ) { |
|---|
| 120 | + if ( !json && json !== null ) { |
|---|
| 121 | + migrateWarn("jQuery.parseJSON requires a valid JSON string"); |
|---|
| 122 | + return null; |
|---|
| 123 | + } |
|---|
| 124 | + return oldParseJSON.apply( this, arguments ); |
|---|
| 125 | +}; |
|---|
| 126 | + |
|---|
| 127 | jQuery.uaMatch = function( ua ) { |
|---|
| 128 | ua = ua.toLowerCase(); |
|---|
| 129 | |
|---|
| 130 | @@ -274,8 +300,7 @@ jQuery.fn.data = function( name ) { |
|---|
| 131 | |
|---|
| 132 | |
|---|
| 133 | var rscriptType = /\/(java|ecma)script/i, |
|---|
| 134 | - oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack, |
|---|
| 135 | - oldFragment = jQuery.buildFragment; |
|---|
| 136 | + oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack; |
|---|
| 137 | |
|---|
| 138 | jQuery.fn.andSelf = function() { |
|---|
| 139 | migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"); |
|---|
| 140 | @@ -332,35 +357,6 @@ if ( !jQuery.clean ) { |
|---|
| 141 | }; |
|---|
| 142 | } |
|---|
| 143 | |
|---|
| 144 | -jQuery.buildFragment = function( elems, context, scripts, selection ) { |
|---|
| 145 | - var ret, |
|---|
| 146 | - warning = "jQuery.buildFragment() is deprecated"; |
|---|
| 147 | - |
|---|
| 148 | - // Set context per 1.8 logic |
|---|
| 149 | - context = context || document; |
|---|
| 150 | - context = !context.nodeType && context[0] || context; |
|---|
| 151 | - context = context.ownerDocument || context; |
|---|
| 152 | - |
|---|
| 153 | - try { |
|---|
| 154 | - ret = oldFragment.call( jQuery, elems, context, scripts, selection ); |
|---|
| 155 | - |
|---|
| 156 | - // jQuery < 1.8 required arrayish context; jQuery 1.9 fails on it |
|---|
| 157 | - } catch( x ) { |
|---|
| 158 | - ret = oldFragment.call( jQuery, elems, context.nodeType ? [ context ] : context[ 0 ], scripts, selection ); |
|---|
| 159 | - |
|---|
| 160 | - // Success from tweaking context means buildFragment was called by the user |
|---|
| 161 | - migrateWarn( warning ); |
|---|
| 162 | - } |
|---|
| 163 | - |
|---|
| 164 | - // jQuery < 1.9 returned an object instead of the fragment itself |
|---|
| 165 | - if ( !ret.fragment ) { |
|---|
| 166 | - migrateWarnProp( ret, "fragment", ret, warning ); |
|---|
| 167 | - migrateWarnProp( ret, "cacheable", false, warning ); |
|---|
| 168 | - } |
|---|
| 169 | - |
|---|
| 170 | - return ret; |
|---|
| 171 | -}; |
|---|
| 172 | - |
|---|
| 173 | var eventAdd = jQuery.event.add, |
|---|
| 174 | eventRemove = jQuery.event.remove, |
|---|
| 175 | eventTrigger = jQuery.event.trigger, |
|---|
| 176 | @@ -386,7 +382,9 @@ if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) { |
|---|
| 177 | } |
|---|
| 178 | |
|---|
| 179 | // Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7 |
|---|
| 180 | -migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" ); |
|---|
| 181 | +if ( jQuery.event.dispatch ) { |
|---|
| 182 | + migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated" ); |
|---|
| 183 | +} |
|---|
| 184 | |
|---|
| 185 | // Support for 'hover' pseudo-event and ajax event warnings |
|---|
| 186 | jQuery.event.add = function( elem, types, handler, data, selector ){ |
|---|
| 187 | @@ -495,4 +493,4 @@ jQuery.each( ajaxEvents.split("|"), |
|---|
| 188 | ); |
|---|
| 189 | |
|---|
| 190 | |
|---|
| 191 | -})( jQuery, window ); |
|---|
| 192 | +})( jQuery, window ); |
|---|
| 193 | \ No newline at end of file |
|---|
| 194 | diff --git wp-includes/js/jquery/jquery.js wp-includes/js/jquery/jquery.js |
|---|
| 195 | index 840e179..a569f12 100644 |
|---|
| 196 | --- wp-includes/js/jquery/jquery.js |
|---|
| 197 | +++ wp-includes/js/jquery/jquery.js |
|---|
| 198 | @@ -1,5 +1,5 @@ |
|---|
| 199 | /*! |
|---|
| 200 | - * jQuery JavaScript Library v1.9.0 |
|---|
| 201 | + * jQuery JavaScript Library v1.9.1 |
|---|
| 202 | * http://jquery.com/ |
|---|
| 203 | * |
|---|
| 204 | * Includes Sizzle.js |
|---|
| 205 | @@ -9,16 +9,25 @@ |
|---|
| 206 | * Released under the MIT license |
|---|
| 207 | * http://jquery.org/license |
|---|
| 208 | * |
|---|
| 209 | - * Date: 2013-1-14 |
|---|
| 210 | + * Date: 2013-2-4 |
|---|
| 211 | */ |
|---|
| 212 | (function( window, undefined ) { |
|---|
| 213 | -"use strict"; |
|---|
| 214 | + |
|---|
| 215 | +// Can't do this because several apps including ASP.NET trace |
|---|
| 216 | +// the stack via arguments.caller.callee and Firefox dies if |
|---|
| 217 | +// you try to trace through "use strict" call chains. (#13335) |
|---|
| 218 | +// Support: Firefox 18+ |
|---|
| 219 | +//"use strict"; |
|---|
| 220 | var |
|---|
| 221 | + // The deferred used on DOM ready |
|---|
| 222 | + readyList, |
|---|
| 223 | + |
|---|
| 224 | // A central reference to the root jQuery(document) |
|---|
| 225 | rootjQuery, |
|---|
| 226 | |
|---|
| 227 | - // The deferred used on DOM ready |
|---|
| 228 | - readyList, |
|---|
| 229 | + // Support: IE<9 |
|---|
| 230 | + // For `typeof node.method` instead of `node.method !== undefined` |
|---|
| 231 | + core_strundefined = typeof undefined, |
|---|
| 232 | |
|---|
| 233 | // Use the correct document accordingly with window argument (sandbox) |
|---|
| 234 | document = window.document, |
|---|
| 235 | @@ -36,7 +45,7 @@ var |
|---|
| 236 | // List of deleted data cache ids, so we can reuse them |
|---|
| 237 | core_deletedIds = [], |
|---|
| 238 | |
|---|
| 239 | - core_version = "1.9.0", |
|---|
| 240 | + core_version = "1.9.1", |
|---|
| 241 | |
|---|
| 242 | // Save a reference to some core methods |
|---|
| 243 | core_concat = core_deletedIds.concat, |
|---|
| 244 | @@ -85,17 +94,25 @@ var |
|---|
| 245 | return letter.toUpperCase(); |
|---|
| 246 | }, |
|---|
| 247 | |
|---|
| 248 | - // The ready event handler and self cleanup method |
|---|
| 249 | - DOMContentLoaded = function() { |
|---|
| 250 | - if ( document.addEventListener ) { |
|---|
| 251 | - document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); |
|---|
| 252 | - jQuery.ready(); |
|---|
| 253 | - } else if ( document.readyState === "complete" ) { |
|---|
| 254 | - // we're here because readyState === "complete" in oldIE |
|---|
| 255 | - // which is good enough for us to call the dom ready! |
|---|
| 256 | - document.detachEvent( "onreadystatechange", DOMContentLoaded ); |
|---|
| 257 | + // The ready event handler |
|---|
| 258 | + completed = function( event ) { |
|---|
| 259 | + |
|---|
| 260 | + // readyState === "complete" is good enough for us to call the dom ready in oldIE |
|---|
| 261 | + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { |
|---|
| 262 | + detach(); |
|---|
| 263 | jQuery.ready(); |
|---|
| 264 | } |
|---|
| 265 | + }, |
|---|
| 266 | + // Clean-up method for dom ready events |
|---|
| 267 | + detach = function() { |
|---|
| 268 | + if ( document.addEventListener ) { |
|---|
| 269 | + document.removeEventListener( "DOMContentLoaded", completed, false ); |
|---|
| 270 | + window.removeEventListener( "load", completed, false ); |
|---|
| 271 | + |
|---|
| 272 | + } else { |
|---|
| 273 | + document.detachEvent( "onreadystatechange", completed ); |
|---|
| 274 | + window.detachEvent( "onload", completed ); |
|---|
| 275 | + } |
|---|
| 276 | }; |
|---|
| 277 | |
|---|
| 278 | jQuery.fn = jQuery.prototype = { |
|---|
| 279 | @@ -299,7 +316,7 @@ jQuery.fn = jQuery.prototype = { |
|---|
| 280 | jQuery.fn.init.prototype = jQuery.fn; |
|---|
| 281 | |
|---|
| 282 | jQuery.extend = jQuery.fn.extend = function() { |
|---|
| 283 | - var options, name, src, copy, copyIsArray, clone, |
|---|
| 284 | + var src, copyIsArray, copy, name, options, clone, |
|---|
| 285 | target = arguments[0] || {}, |
|---|
| 286 | i = 1, |
|---|
| 287 | length = arguments.length, |
|---|
| 288 | @@ -781,7 +798,7 @@ jQuery.extend({ |
|---|
| 289 | // Bind a function to a context, optionally partially applying any |
|---|
| 290 | // arguments. |
|---|
| 291 | proxy: function( fn, context ) { |
|---|
| 292 | - var tmp, args, proxy; |
|---|
| 293 | + var args, proxy, tmp; |
|---|
| 294 | |
|---|
| 295 | if ( typeof context === "string" ) { |
|---|
| 296 | tmp = fn[ context ]; |
|---|
| 297 | @@ -880,18 +897,18 @@ jQuery.ready.promise = function( obj ) { |
|---|
| 298 | // Standards-based browsers support DOMContentLoaded |
|---|
| 299 | } else if ( document.addEventListener ) { |
|---|
| 300 | // Use the handy event callback |
|---|
| 301 | - document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); |
|---|
| 302 | + document.addEventListener( "DOMContentLoaded", completed, false ); |
|---|
| 303 | |
|---|
| 304 | // A fallback to window.onload, that will always work |
|---|
| 305 | - window.addEventListener( "load", jQuery.ready, false ); |
|---|
| 306 | + window.addEventListener( "load", completed, false ); |
|---|
| 307 | |
|---|
| 308 | // If IE event model is used |
|---|
| 309 | } else { |
|---|
| 310 | // Ensure firing before onload, maybe late but safe also for iframes |
|---|
| 311 | - document.attachEvent( "onreadystatechange", DOMContentLoaded ); |
|---|
| 312 | + document.attachEvent( "onreadystatechange", completed ); |
|---|
| 313 | |
|---|
| 314 | // A fallback to window.onload, that will always work |
|---|
| 315 | - window.attachEvent( "onload", jQuery.ready ); |
|---|
| 316 | + window.attachEvent( "onload", completed ); |
|---|
| 317 | |
|---|
| 318 | // If IE and not a frame |
|---|
| 319 | // continually check to see if the document is ready |
|---|
| 320 | @@ -913,6 +930,9 @@ jQuery.ready.promise = function( obj ) { |
|---|
| 321 | return setTimeout( doScrollCheck, 50 ); |
|---|
| 322 | } |
|---|
| 323 | |
|---|
| 324 | + // detach all dom ready events |
|---|
| 325 | + detach(); |
|---|
| 326 | + |
|---|
| 327 | // and execute any waiting functions |
|---|
| 328 | jQuery.ready(); |
|---|
| 329 | } |
|---|
| 330 | @@ -989,18 +1009,18 @@ jQuery.Callbacks = function( options ) { |
|---|
| 331 | ( optionsCache[ options ] || createOptions( options ) ) : |
|---|
| 332 | jQuery.extend( {}, options ); |
|---|
| 333 | |
|---|
| 334 | - var // Last fire value (for non-forgettable lists) |
|---|
| 335 | + var // Flag to know if list is currently firing |
|---|
| 336 | + firing, |
|---|
| 337 | + // Last fire value (for non-forgettable lists) |
|---|
| 338 | memory, |
|---|
| 339 | // Flag to know if list was already fired |
|---|
| 340 | fired, |
|---|
| 341 | - // Flag to know if list is currently firing |
|---|
| 342 | - firing, |
|---|
| 343 | - // First callback to fire (used internally by add and fireWith) |
|---|
| 344 | - firingStart, |
|---|
| 345 | // End of the loop when firing |
|---|
| 346 | firingLength, |
|---|
| 347 | // Index of currently firing callback (modified by remove if needed) |
|---|
| 348 | firingIndex, |
|---|
| 349 | + // First callback to fire (used internally by add and fireWith) |
|---|
| 350 | + firingStart, |
|---|
| 351 | // Actual callback list |
|---|
| 352 | list = [], |
|---|
| 353 | // Stack of fire calls for repeatable lists |
|---|
| 354 | @@ -1086,9 +1106,10 @@ jQuery.Callbacks = function( options ) { |
|---|
| 355 | } |
|---|
| 356 | return this; |
|---|
| 357 | }, |
|---|
| 358 | - // Control if a given callback is in the list |
|---|
| 359 | + // Check if a given callback is in the list. |
|---|
| 360 | + // If no argument is given, return whether or not list has callbacks attached. |
|---|
| 361 | has: function( fn ) { |
|---|
| 362 | - return jQuery.inArray( fn, list ) > -1; |
|---|
| 363 | + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); |
|---|
| 364 | }, |
|---|
| 365 | // Remove all callbacks from the list |
|---|
| 366 | empty: function() { |
|---|
| 367 | @@ -1285,7 +1306,9 @@ jQuery.extend({ |
|---|
| 368 | }); |
|---|
| 369 | jQuery.support = (function() { |
|---|
| 370 | |
|---|
| 371 | - var support, all, a, select, opt, input, fragment, eventName, isSupported, i, |
|---|
| 372 | + var support, all, a, |
|---|
| 373 | + input, select, fragment, |
|---|
| 374 | + opt, eventName, isSupported, i, |
|---|
| 375 | div = document.createElement("div"); |
|---|
| 376 | |
|---|
| 377 | // Setup |
|---|
| 378 | @@ -1486,7 +1509,7 @@ jQuery.support = (function() { |
|---|
| 379 | !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); |
|---|
| 380 | } |
|---|
| 381 | |
|---|
| 382 | - if ( typeof div.style.zoom !== "undefined" ) { |
|---|
| 383 | + if ( typeof div.style.zoom !== core_strundefined ) { |
|---|
| 384 | // Support: IE<8 |
|---|
| 385 | // Check if natively block-level elements act like inline-block |
|---|
| 386 | // elements when setting their display to 'inline' and giving |
|---|
| 387 | @@ -1502,9 +1525,12 @@ jQuery.support = (function() { |
|---|
| 388 | div.firstChild.style.width = "5px"; |
|---|
| 389 | support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); |
|---|
| 390 | |
|---|
| 391 | - // Prevent IE 6 from affecting layout for positioned elements #11048 |
|---|
| 392 | - // Prevent IE from shrinking the body in IE 7 mode #12869 |
|---|
| 393 | - body.style.zoom = 1; |
|---|
| 394 | + if ( support.inlineBlockNeedsLayout ) { |
|---|
| 395 | + // Prevent IE 6 from affecting layout for positioned elements #11048 |
|---|
| 396 | + // Prevent IE from shrinking the body in IE 7 mode #12869 |
|---|
| 397 | + // Support: IE<8 |
|---|
| 398 | + body.style.zoom = 1; |
|---|
| 399 | + } |
|---|
| 400 | } |
|---|
| 401 | |
|---|
| 402 | body.removeChild( container ); |
|---|
| 403 | @@ -1521,7 +1547,7 @@ jQuery.support = (function() { |
|---|
| 404 | |
|---|
| 405 | var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, |
|---|
| 406 | rmultiDash = /([A-Z])/g; |
|---|
| 407 | - |
|---|
| 408 | + |
|---|
| 409 | function internalData( elem, name, data, pvt /* Internal Use Only */ ){ |
|---|
| 410 | if ( !jQuery.acceptData( elem ) ) { |
|---|
| 411 | return; |
|---|
| 412 | @@ -1616,13 +1642,12 @@ function internalData( elem, name, data, pvt /* Internal Use Only */ ){ |
|---|
| 413 | return ret; |
|---|
| 414 | } |
|---|
| 415 | |
|---|
| 416 | -function internalRemoveData( elem, name, pvt /* For internal use only */ ){ |
|---|
| 417 | +function internalRemoveData( elem, name, pvt ) { |
|---|
| 418 | if ( !jQuery.acceptData( elem ) ) { |
|---|
| 419 | return; |
|---|
| 420 | } |
|---|
| 421 | |
|---|
| 422 | - var thisCache, i, l, |
|---|
| 423 | - |
|---|
| 424 | + var i, l, thisCache, |
|---|
| 425 | isNode = elem.nodeType, |
|---|
| 426 | |
|---|
| 427 | // See jQuery.data for more information |
|---|
| 428 | @@ -1726,24 +1751,29 @@ jQuery.extend({ |
|---|
| 429 | }, |
|---|
| 430 | |
|---|
| 431 | data: function( elem, name, data ) { |
|---|
| 432 | - return internalData( elem, name, data, false ); |
|---|
| 433 | + return internalData( elem, name, data ); |
|---|
| 434 | }, |
|---|
| 435 | |
|---|
| 436 | removeData: function( elem, name ) { |
|---|
| 437 | - return internalRemoveData( elem, name, false ); |
|---|
| 438 | + return internalRemoveData( elem, name ); |
|---|
| 439 | }, |
|---|
| 440 | |
|---|
| 441 | // For internal use only. |
|---|
| 442 | _data: function( elem, name, data ) { |
|---|
| 443 | return internalData( elem, name, data, true ); |
|---|
| 444 | }, |
|---|
| 445 | - |
|---|
| 446 | + |
|---|
| 447 | _removeData: function( elem, name ) { |
|---|
| 448 | return internalRemoveData( elem, name, true ); |
|---|
| 449 | }, |
|---|
| 450 | |
|---|
| 451 | // A method for determining if a DOM node can handle the data expando |
|---|
| 452 | acceptData: function( elem ) { |
|---|
| 453 | + // Do not set data on non-element because it will not be cleared (#8335). |
|---|
| 454 | + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { |
|---|
| 455 | + return false; |
|---|
| 456 | + } |
|---|
| 457 | + |
|---|
| 458 | var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; |
|---|
| 459 | |
|---|
| 460 | // nodes accept data unless otherwise specified; rejection can be conditional |
|---|
| 461 | @@ -1769,7 +1799,7 @@ jQuery.fn.extend({ |
|---|
| 462 | name = attrs[i].name; |
|---|
| 463 | |
|---|
| 464 | if ( !name.indexOf( "data-" ) ) { |
|---|
| 465 | - name = jQuery.camelCase( name.substring(5) ); |
|---|
| 466 | + name = jQuery.camelCase( name.slice(5) ); |
|---|
| 467 | |
|---|
| 468 | dataAttr( elem, name, data[ name ] ); |
|---|
| 469 | } |
|---|
| 470 | @@ -1820,12 +1850,12 @@ function dataAttr( elem, key, data ) { |
|---|
| 471 | if ( typeof data === "string" ) { |
|---|
| 472 | try { |
|---|
| 473 | data = data === "true" ? true : |
|---|
| 474 | - data === "false" ? false : |
|---|
| 475 | - data === "null" ? null : |
|---|
| 476 | - // Only convert to a number if it doesn't change the string |
|---|
| 477 | - +data + "" === data ? +data : |
|---|
| 478 | - rbrace.test( data ) ? jQuery.parseJSON( data ) : |
|---|
| 479 | - data; |
|---|
| 480 | + data === "false" ? false : |
|---|
| 481 | + data === "null" ? null : |
|---|
| 482 | + // Only convert to a number if it doesn't change the string |
|---|
| 483 | + +data + "" === data ? +data : |
|---|
| 484 | + rbrace.test( data ) ? jQuery.parseJSON( data ) : |
|---|
| 485 | + data; |
|---|
| 486 | } catch( e ) {} |
|---|
| 487 | |
|---|
| 488 | // Make sure we set the data so it isn't changed later |
|---|
| 489 | @@ -2141,7 +2171,7 @@ jQuery.fn.extend({ |
|---|
| 490 | } |
|---|
| 491 | |
|---|
| 492 | // Toggle whole class name |
|---|
| 493 | - } else if ( type === "undefined" || type === "boolean" ) { |
|---|
| 494 | + } else if ( type === core_strundefined || type === "boolean" ) { |
|---|
| 495 | if ( this.className ) { |
|---|
| 496 | // store className if set |
|---|
| 497 | jQuery._data( this, "__className__", this.className ); |
|---|
| 498 | @@ -2170,7 +2200,7 @@ jQuery.fn.extend({ |
|---|
| 499 | }, |
|---|
| 500 | |
|---|
| 501 | val: function( value ) { |
|---|
| 502 | - var hooks, ret, isFunction, |
|---|
| 503 | + var ret, hooks, isFunction, |
|---|
| 504 | elem = this[0]; |
|---|
| 505 | |
|---|
| 506 | if ( !arguments.length ) { |
|---|
| 507 | @@ -2294,7 +2324,7 @@ jQuery.extend({ |
|---|
| 508 | }, |
|---|
| 509 | |
|---|
| 510 | attr: function( elem, name, value ) { |
|---|
| 511 | - var ret, hooks, notxml, |
|---|
| 512 | + var hooks, notxml, ret, |
|---|
| 513 | nType = elem.nodeType; |
|---|
| 514 | |
|---|
| 515 | // don't get/set attributes on text, comment and attribute nodes |
|---|
| 516 | @@ -2303,7 +2333,7 @@ jQuery.extend({ |
|---|
| 517 | } |
|---|
| 518 | |
|---|
| 519 | // Fallback to prop when attributes are not supported |
|---|
| 520 | - if ( typeof elem.getAttribute === "undefined" ) { |
|---|
| 521 | + if ( typeof elem.getAttribute === core_strundefined ) { |
|---|
| 522 | return jQuery.prop( elem, name, value ); |
|---|
| 523 | } |
|---|
| 524 | |
|---|
| 525 | @@ -2336,7 +2366,7 @@ jQuery.extend({ |
|---|
| 526 | |
|---|
| 527 | // In IE9+, Flash objects don't have .getAttribute (#12945) |
|---|
| 528 | // Support: IE9+ |
|---|
| 529 | - if ( typeof elem.getAttribute !== "undefined" ) { |
|---|
| 530 | + if ( typeof elem.getAttribute !== core_strundefined ) { |
|---|
| 531 | ret = elem.getAttribute( name ); |
|---|
| 532 | } |
|---|
| 533 | |
|---|
| 534 | @@ -2686,13 +2716,12 @@ jQuery.event = { |
|---|
| 535 | global: {}, |
|---|
| 536 | |
|---|
| 537 | add: function( elem, types, handler, data, selector ) { |
|---|
| 538 | + var tmp, events, t, handleObjIn, |
|---|
| 539 | + special, eventHandle, handleObj, |
|---|
| 540 | + handlers, type, namespaces, origType, |
|---|
| 541 | + elemData = jQuery._data( elem ); |
|---|
| 542 | |
|---|
| 543 | - var handleObjIn, eventHandle, tmp, |
|---|
| 544 | - events, t, handleObj, |
|---|
| 545 | - special, handlers, type, namespaces, origType, |
|---|
| 546 | - // Don't attach events to noData or text/comment nodes (but allow plain objects) |
|---|
| 547 | - elemData = elem.nodeType !== 3 && elem.nodeType !== 8 && jQuery._data( elem ); |
|---|
| 548 | - |
|---|
| 549 | + // Don't attach events to noData or text/comment nodes (but allow plain objects) |
|---|
| 550 | if ( !elemData ) { |
|---|
| 551 | return; |
|---|
| 552 | } |
|---|
| 553 | @@ -2717,7 +2746,7 @@ jQuery.event = { |
|---|
| 554 | eventHandle = elemData.handle = function( e ) { |
|---|
| 555 | // Discard the second event of a jQuery.event.trigger() and |
|---|
| 556 | // when an event is called after a page has unloaded |
|---|
| 557 | - return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ? |
|---|
| 558 | + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? |
|---|
| 559 | jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : |
|---|
| 560 | undefined; |
|---|
| 561 | }; |
|---|
| 562 | @@ -2797,10 +2826,10 @@ jQuery.event = { |
|---|
| 563 | |
|---|
| 564 | // Detach an event or set of events from an element |
|---|
| 565 | remove: function( elem, types, handler, selector, mappedTypes ) { |
|---|
| 566 | - |
|---|
| 567 | - var j, origCount, tmp, |
|---|
| 568 | - events, t, handleObj, |
|---|
| 569 | - special, handlers, type, namespaces, origType, |
|---|
| 570 | + var j, handleObj, tmp, |
|---|
| 571 | + origCount, t, events, |
|---|
| 572 | + special, handlers, type, |
|---|
| 573 | + namespaces, origType, |
|---|
| 574 | elemData = jQuery.hasData( elem ) && jQuery._data( elem ); |
|---|
| 575 | |
|---|
| 576 | if ( !elemData || !(events = elemData.events) ) { |
|---|
| 577 | @@ -2870,11 +2899,11 @@ jQuery.event = { |
|---|
| 578 | }, |
|---|
| 579 | |
|---|
| 580 | trigger: function( event, data, elem, onlyHandlers ) { |
|---|
| 581 | - |
|---|
| 582 | - var i, cur, tmp, bubbleType, ontype, handle, special, |
|---|
| 583 | + var handle, ontype, cur, |
|---|
| 584 | + bubbleType, special, tmp, i, |
|---|
| 585 | eventPath = [ elem || document ], |
|---|
| 586 | - type = event.type || event, |
|---|
| 587 | - namespaces = event.namespace ? event.namespace.split(".") : []; |
|---|
| 588 | + type = core_hasOwn.call( event, "type" ) ? event.type : event, |
|---|
| 589 | + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; |
|---|
| 590 | |
|---|
| 591 | cur = tmp = elem = elem || document; |
|---|
| 592 | |
|---|
| 593 | @@ -3008,7 +3037,7 @@ jQuery.event = { |
|---|
| 594 | // Make a writable jQuery.Event from the native event object |
|---|
| 595 | event = jQuery.event.fix( event ); |
|---|
| 596 | |
|---|
| 597 | - var i, j, ret, matched, handleObj, |
|---|
| 598 | + var i, ret, handleObj, matched, j, |
|---|
| 599 | handlerQueue = [], |
|---|
| 600 | args = core_slice.call( arguments ), |
|---|
| 601 | handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], |
|---|
| 602 | @@ -3063,7 +3092,7 @@ jQuery.event = { |
|---|
| 603 | }, |
|---|
| 604 | |
|---|
| 605 | handlers: function( event, handlers ) { |
|---|
| 606 | - var i, matches, sel, handleObj, |
|---|
| 607 | + var sel, handleObj, matches, i, |
|---|
| 608 | handlerQueue = [], |
|---|
| 609 | delegateCount = handlers.delegateCount, |
|---|
| 610 | cur = event.target; |
|---|
| 611 | @@ -3075,8 +3104,9 @@ jQuery.event = { |
|---|
| 612 | |
|---|
| 613 | for ( ; cur != this; cur = cur.parentNode || this ) { |
|---|
| 614 | |
|---|
| 615 | + // Don't check non-elements (#13208) |
|---|
| 616 | // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) |
|---|
| 617 | - if ( cur.disabled !== true || event.type !== "click" ) { |
|---|
| 618 | + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { |
|---|
| 619 | matches = []; |
|---|
| 620 | for ( i = 0; i < delegateCount; i++ ) { |
|---|
| 621 | handleObj = handlers[ i ]; |
|---|
| 622 | @@ -3114,10 +3144,18 @@ jQuery.event = { |
|---|
| 623 | } |
|---|
| 624 | |
|---|
| 625 | // Create a writable copy of the event object and normalize some properties |
|---|
| 626 | - var i, prop, |
|---|
| 627 | + var i, prop, copy, |
|---|
| 628 | + type = event.type, |
|---|
| 629 | originalEvent = event, |
|---|
| 630 | - fixHook = jQuery.event.fixHooks[ event.type ] || {}, |
|---|
| 631 | - copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; |
|---|
| 632 | + fixHook = this.fixHooks[ type ]; |
|---|
| 633 | + |
|---|
| 634 | + if ( !fixHook ) { |
|---|
| 635 | + this.fixHooks[ type ] = fixHook = |
|---|
| 636 | + rmouseEvent.test( type ) ? this.mouseHooks : |
|---|
| 637 | + rkeyEvent.test( type ) ? this.keyHooks : |
|---|
| 638 | + {}; |
|---|
| 639 | + } |
|---|
| 640 | + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; |
|---|
| 641 | |
|---|
| 642 | event = new jQuery.Event( originalEvent ); |
|---|
| 643 | |
|---|
| 644 | @@ -3167,7 +3205,7 @@ jQuery.event = { |
|---|
| 645 | mouseHooks: { |
|---|
| 646 | props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), |
|---|
| 647 | filter: function( event, original ) { |
|---|
| 648 | - var eventDoc, doc, body, |
|---|
| 649 | + var body, eventDoc, doc, |
|---|
| 650 | button = original.button, |
|---|
| 651 | fromElement = original.fromElement; |
|---|
| 652 | |
|---|
| 653 | @@ -3283,7 +3321,7 @@ jQuery.removeEvent = document.removeEventListener ? |
|---|
| 654 | |
|---|
| 655 | // #8545, #7054, preventing memory leaks for custom events in IE6-8 |
|---|
| 656 | // detachEvent needed property on element, by name of that event, to properly expose it to GC |
|---|
| 657 | - if ( typeof elem[ name ] === "undefined" ) { |
|---|
| 658 | + if ( typeof elem[ name ] === core_strundefined ) { |
|---|
| 659 | elem[ name ] = null; |
|---|
| 660 | } |
|---|
| 661 | |
|---|
| 662 | @@ -3532,7 +3570,7 @@ if ( !jQuery.support.focusinBubbles ) { |
|---|
| 663 | jQuery.fn.extend({ |
|---|
| 664 | |
|---|
| 665 | on: function( types, selector, data, fn, /*INTERNAL*/ one ) { |
|---|
| 666 | - var origFn, type; |
|---|
| 667 | + var type, origFn; |
|---|
| 668 | |
|---|
| 669 | // Types can be a map of types/handlers |
|---|
| 670 | if ( typeof types === "object" ) { |
|---|
| 671 | @@ -3644,30 +3682,6 @@ jQuery.fn.extend({ |
|---|
| 672 | if ( elem ) { |
|---|
| 673 | return jQuery.event.trigger( type, data, elem, true ); |
|---|
| 674 | } |
|---|
| 675 | - }, |
|---|
| 676 | - |
|---|
| 677 | - hover: function( fnOver, fnOut ) { |
|---|
| 678 | - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); |
|---|
| 679 | - } |
|---|
| 680 | -}); |
|---|
| 681 | - |
|---|
| 682 | -jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + |
|---|
| 683 | - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + |
|---|
| 684 | - "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { |
|---|
| 685 | - |
|---|
| 686 | - // Handle event binding |
|---|
| 687 | - jQuery.fn[ name ] = function( data, fn ) { |
|---|
| 688 | - return arguments.length > 0 ? |
|---|
| 689 | - this.on( name, null, data, fn ) : |
|---|
| 690 | - this.trigger( name ); |
|---|
| 691 | - }; |
|---|
| 692 | - |
|---|
| 693 | - if ( rkeyEvent.test( name ) ) { |
|---|
| 694 | - jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks; |
|---|
| 695 | - } |
|---|
| 696 | - |
|---|
| 697 | - if ( rmouseEvent.test( name ) ) { |
|---|
| 698 | - jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks; |
|---|
| 699 | } |
|---|
| 700 | }); |
|---|
| 701 | /*! |
|---|
| 702 | @@ -3781,7 +3795,7 @@ var i, |
|---|
| 703 | |
|---|
| 704 | rsibling = /[\x20\t\r\n\f]*[+~]/, |
|---|
| 705 | |
|---|
| 706 | - rnative = /\{\s*\[native code\]\s*\}/, |
|---|
| 707 | + rnative = /^[^{]+\{\s*\[native code/, |
|---|
| 708 | |
|---|
| 709 | // Easily-parseable/retrievable ID or TAG or CLASS selectors |
|---|
| 710 | rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, |
|---|
| 711 | @@ -3808,12 +3822,12 @@ var i, |
|---|
| 712 | |
|---|
| 713 | // Use a stripped-down slice if we can't use a native one |
|---|
| 714 | try { |
|---|
| 715 | - slice.call( docElem.childNodes, 0 )[0].nodeType; |
|---|
| 716 | + slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType; |
|---|
| 717 | } catch ( e ) { |
|---|
| 718 | slice = function( i ) { |
|---|
| 719 | var elem, |
|---|
| 720 | results = []; |
|---|
| 721 | - for ( ; (elem = this[i]); i++ ) { |
|---|
| 722 | + while ( (elem = this[i++]) ) { |
|---|
| 723 | results.push( elem ); |
|---|
| 724 | } |
|---|
| 725 | return results; |
|---|
| 726 | @@ -4132,7 +4146,7 @@ setDocument = Sizzle.setDocument = function( node ) { |
|---|
| 727 | |
|---|
| 728 | // Filter out possible comments |
|---|
| 729 | if ( tag === "*" ) { |
|---|
| 730 | - for ( ; (elem = results[i]); i++ ) { |
|---|
| 731 | + while ( (elem = results[i++]) ) { |
|---|
| 732 | if ( elem.nodeType === 1 ) { |
|---|
| 733 | tmp.push( elem ); |
|---|
| 734 | } |
|---|
| 735 | @@ -4290,15 +4304,11 @@ setDocument = Sizzle.setDocument = function( node ) { |
|---|
| 736 | ap = [ a ], |
|---|
| 737 | bp = [ b ]; |
|---|
| 738 | |
|---|
| 739 | - // The nodes are identical, we can exit early |
|---|
| 740 | + // Exit early if the nodes are identical |
|---|
| 741 | if ( a === b ) { |
|---|
| 742 | hasDuplicate = true; |
|---|
| 743 | return 0; |
|---|
| 744 | |
|---|
| 745 | - // Fallback to using sourceIndex (in IE) if it's available on both nodes |
|---|
| 746 | - } else if ( a.sourceIndex && b.sourceIndex ) { |
|---|
| 747 | - return ( ~b.sourceIndex || MAX_NEGATIVE ) - ( contains( preferredDoc, a ) && ~a.sourceIndex || MAX_NEGATIVE ); |
|---|
| 748 | - |
|---|
| 749 | // Parentless nodes are either documents or disconnected |
|---|
| 750 | } else if ( !aup || !bup ) { |
|---|
| 751 | return a === doc ? -1 : |
|---|
| 752 | @@ -4437,11 +4447,20 @@ Sizzle.uniqueSort = function( results ) { |
|---|
| 753 | }; |
|---|
| 754 | |
|---|
| 755 | function siblingCheck( a, b ) { |
|---|
| 756 | - var cur = a && b && a.nextSibling; |
|---|
| 757 | + var cur = b && a, |
|---|
| 758 | + diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); |
|---|
| 759 | |
|---|
| 760 | - for ( ; cur; cur = cur.nextSibling ) { |
|---|
| 761 | - if ( cur === b ) { |
|---|
| 762 | - return -1; |
|---|
| 763 | + // Use IE sourceIndex if available on both nodes |
|---|
| 764 | + if ( diff ) { |
|---|
| 765 | + return diff; |
|---|
| 766 | + } |
|---|
| 767 | + |
|---|
| 768 | + // Check if b follows a |
|---|
| 769 | + if ( cur ) { |
|---|
| 770 | + while ( (cur = cur.nextSibling) ) { |
|---|
| 771 | + if ( cur === b ) { |
|---|
| 772 | + return -1; |
|---|
| 773 | + } |
|---|
| 774 | } |
|---|
| 775 | } |
|---|
| 776 | |
|---|
| 777 | @@ -4651,9 +4670,9 @@ Expr = Sizzle.selectors = { |
|---|
| 778 | operator === "!=" ? result !== check : |
|---|
| 779 | operator === "^=" ? check && result.indexOf( check ) === 0 : |
|---|
| 780 | operator === "*=" ? check && result.indexOf( check ) > -1 : |
|---|
| 781 | - operator === "$=" ? check && result.substr( result.length - check.length ) === check : |
|---|
| 782 | + operator === "$=" ? check && result.slice( -check.length ) === check : |
|---|
| 783 | operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : |
|---|
| 784 | - operator === "|=" ? result === check || result.substr( 0, check.length + 1 ) === check + "-" : |
|---|
| 785 | + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : |
|---|
| 786 | false; |
|---|
| 787 | }; |
|---|
| 788 | }, |
|---|
| 789 | @@ -5071,7 +5090,7 @@ function toSelector( tokens ) { |
|---|
| 790 | |
|---|
| 791 | function addCombinator( matcher, combinator, base ) { |
|---|
| 792 | var dir = combinator.dir, |
|---|
| 793 | - checkNonElements = base && combinator.dir === "parentNode", |
|---|
| 794 | + checkNonElements = base && dir === "parentNode", |
|---|
| 795 | doneName = done++; |
|---|
| 796 | |
|---|
| 797 | return combinator.first ? |
|---|
| 798 | @@ -5314,8 +5333,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { |
|---|
| 799 | contextBackup = outermostContext, |
|---|
| 800 | // We must always have either seed elements or context |
|---|
| 801 | elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), |
|---|
| 802 | - // Nested matchers should use non-integer dirruns |
|---|
| 803 | - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E); |
|---|
| 804 | + // Use integer dirruns iff this is the outermost matcher |
|---|
| 805 | + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); |
|---|
| 806 | |
|---|
| 807 | if ( outermost ) { |
|---|
| 808 | outermostContext = context !== document && context; |
|---|
| 809 | @@ -5323,9 +5342,11 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { |
|---|
| 810 | } |
|---|
| 811 | |
|---|
| 812 | // Add elements passing elementMatchers directly to results |
|---|
| 813 | + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below |
|---|
| 814 | for ( ; (elem = elems[i]) != null; i++ ) { |
|---|
| 815 | if ( byElement && elem ) { |
|---|
| 816 | - for ( j = 0; (matcher = elementMatchers[j]); j++ ) { |
|---|
| 817 | + j = 0; |
|---|
| 818 | + while ( (matcher = elementMatchers[j++]) ) { |
|---|
| 819 | if ( matcher( elem, context, xml ) ) { |
|---|
| 820 | results.push( elem ); |
|---|
| 821 | break; |
|---|
| 822 | @@ -5352,10 +5373,10 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { |
|---|
| 823 | } |
|---|
| 824 | |
|---|
| 825 | // Apply set filters to unmatched elements |
|---|
| 826 | - // `i` starts as a string, so matchedCount would equal "00" if there are no elements |
|---|
| 827 | matchedCount += i; |
|---|
| 828 | if ( bySet && i !== matchedCount ) { |
|---|
| 829 | - for ( j = 0; (matcher = setMatchers[j]); j++ ) { |
|---|
| 830 | + j = 0; |
|---|
| 831 | + while ( (matcher = setMatchers[j++]) ) { |
|---|
| 832 | matcher( unmatched, setMatched, context, xml ); |
|---|
| 833 | } |
|---|
| 834 | |
|---|
| 835 | @@ -5457,7 +5478,8 @@ function select( selector, context, results, seed ) { |
|---|
| 836 | } |
|---|
| 837 | |
|---|
| 838 | // Fetch a seed set for right-to-left matching |
|---|
| 839 | - for ( i = matchExpr["needsContext"].test( selector ) ? -1 : tokens.length - 1; i >= 0; i-- ) { |
|---|
| 840 | + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; |
|---|
| 841 | + while ( i-- ) { |
|---|
| 842 | token = tokens[i]; |
|---|
| 843 | |
|---|
| 844 | // Abort if we hit a combinator |
|---|
| 845 | @@ -5535,12 +5557,13 @@ var runtil = /Until$/, |
|---|
| 846 | |
|---|
| 847 | jQuery.fn.extend({ |
|---|
| 848 | find: function( selector ) { |
|---|
| 849 | - var i, ret, self; |
|---|
| 850 | + var i, ret, self, |
|---|
| 851 | + len = this.length; |
|---|
| 852 | |
|---|
| 853 | if ( typeof selector !== "string" ) { |
|---|
| 854 | self = this; |
|---|
| 855 | return this.pushStack( jQuery( selector ).filter(function() { |
|---|
| 856 | - for ( i = 0; i < self.length; i++ ) { |
|---|
| 857 | + for ( i = 0; i < len; i++ ) { |
|---|
| 858 | if ( jQuery.contains( self[ i ], this ) ) { |
|---|
| 859 | return true; |
|---|
| 860 | } |
|---|
| 861 | @@ -5549,12 +5572,12 @@ jQuery.fn.extend({ |
|---|
| 862 | } |
|---|
| 863 | |
|---|
| 864 | ret = []; |
|---|
| 865 | - for ( i = 0; i < this.length; i++ ) { |
|---|
| 866 | + for ( i = 0; i < len; i++ ) { |
|---|
| 867 | jQuery.find( selector, this[ i ], ret ); |
|---|
| 868 | } |
|---|
| 869 | |
|---|
| 870 | // Needed because $( selector, context ) becomes $( context ).find( selector ) |
|---|
| 871 | - ret = this.pushStack( jQuery.unique( ret ) ); |
|---|
| 872 | + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); |
|---|
| 873 | ret.selector = ( this.selector ? this.selector + " " : "" ) + selector; |
|---|
| 874 | return ret; |
|---|
| 875 | }, |
|---|
| 876 | @@ -6066,15 +6089,9 @@ jQuery.fn.extend({ |
|---|
| 877 | var next = this.nextSibling, |
|---|
| 878 | parent = this.parentNode; |
|---|
| 879 | |
|---|
| 880 | - if ( parent && this.nodeType === 1 || this.nodeType === 11 ) { |
|---|
| 881 | - |
|---|
| 882 | + if ( parent ) { |
|---|
| 883 | jQuery( this ).remove(); |
|---|
| 884 | - |
|---|
| 885 | - if ( next ) { |
|---|
| 886 | - next.parentNode.insertBefore( elem, next ); |
|---|
| 887 | - } else { |
|---|
| 888 | - parent.appendChild( elem ); |
|---|
| 889 | - } |
|---|
| 890 | + parent.insertBefore( elem, next ); |
|---|
| 891 | } |
|---|
| 892 | }); |
|---|
| 893 | }, |
|---|
| 894 | @@ -6088,7 +6105,8 @@ jQuery.fn.extend({ |
|---|
| 895 | // Flatten any nested arrays |
|---|
| 896 | args = core_concat.apply( [], args ); |
|---|
| 897 | |
|---|
| 898 | - var fragment, first, scripts, hasScripts, node, doc, |
|---|
| 899 | + var first, node, hasScripts, |
|---|
| 900 | + scripts, doc, fragment, |
|---|
| 901 | i = 0, |
|---|
| 902 | l = this.length, |
|---|
| 903 | set = this, |
|---|
| 904 | @@ -6239,7 +6257,7 @@ function cloneCopyEvent( src, dest ) { |
|---|
| 905 | } |
|---|
| 906 | |
|---|
| 907 | function fixCloneNodeIssues( src, dest ) { |
|---|
| 908 | - var nodeName, data, e; |
|---|
| 909 | + var nodeName, e, data; |
|---|
| 910 | |
|---|
| 911 | // We do not need to do anything for non-Elements |
|---|
| 912 | if ( dest.nodeType !== 1 ) { |
|---|
| 913 | @@ -6334,8 +6352,8 @@ jQuery.each({ |
|---|
| 914 | function getAll( context, tag ) { |
|---|
| 915 | var elems, elem, |
|---|
| 916 | i = 0, |
|---|
| 917 | - found = typeof context.getElementsByTagName !== "undefined" ? context.getElementsByTagName( tag || "*" ) : |
|---|
| 918 | - typeof context.querySelectorAll !== "undefined" ? context.querySelectorAll( tag || "*" ) : |
|---|
| 919 | + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : |
|---|
| 920 | + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : |
|---|
| 921 | undefined; |
|---|
| 922 | |
|---|
| 923 | if ( !found ) { |
|---|
| 924 | @@ -6362,7 +6380,7 @@ function fixDefaultChecked( elem ) { |
|---|
| 925 | |
|---|
| 926 | jQuery.extend({ |
|---|
| 927 | clone: function( elem, dataAndEvents, deepDataAndEvents ) { |
|---|
| 928 | - var destElements, srcElements, node, i, clone, |
|---|
| 929 | + var destElements, node, clone, i, srcElements, |
|---|
| 930 | inPage = jQuery.contains( elem.ownerDocument, elem ); |
|---|
| 931 | |
|---|
| 932 | if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { |
|---|
| 933 | @@ -6417,7 +6435,8 @@ jQuery.extend({ |
|---|
| 934 | }, |
|---|
| 935 | |
|---|
| 936 | buildFragment: function( elems, context, scripts, selection ) { |
|---|
| 937 | - var contains, elem, tag, tmp, wrap, tbody, j, |
|---|
| 938 | + var j, elem, contains, |
|---|
| 939 | + tmp, tag, tbody, wrap, |
|---|
| 940 | l = elems.length, |
|---|
| 941 | |
|---|
| 942 | // Ensure a safe fragment |
|---|
| 943 | @@ -6543,7 +6562,7 @@ jQuery.extend({ |
|---|
| 944 | }, |
|---|
| 945 | |
|---|
| 946 | cleanData: function( elems, /* internal */ acceptData ) { |
|---|
| 947 | - var data, id, elem, type, |
|---|
| 948 | + var elem, type, id, data, |
|---|
| 949 | i = 0, |
|---|
| 950 | internalKey = jQuery.expando, |
|---|
| 951 | cache = jQuery.cache, |
|---|
| 952 | @@ -6581,7 +6600,7 @@ jQuery.extend({ |
|---|
| 953 | if ( deleteExpando ) { |
|---|
| 954 | delete elem[ internalKey ]; |
|---|
| 955 | |
|---|
| 956 | - } else if ( typeof elem.removeAttribute !== "undefined" ) { |
|---|
| 957 | + } else if ( typeof elem.removeAttribute !== core_strundefined ) { |
|---|
| 958 | elem.removeAttribute( internalKey ); |
|---|
| 959 | |
|---|
| 960 | } else { |
|---|
| 961 | @@ -6595,7 +6614,7 @@ jQuery.extend({ |
|---|
| 962 | } |
|---|
| 963 | } |
|---|
| 964 | }); |
|---|
| 965 | -var curCSS, getStyles, iframe, |
|---|
| 966 | +var iframe, getStyles, curCSS, |
|---|
| 967 | ralpha = /alpha\([^)]*\)/i, |
|---|
| 968 | ropacity = /opacity\s*=\s*([^)]*)/, |
|---|
| 969 | rposition = /^(top|right|bottom|left)$/, |
|---|
| 970 | @@ -6648,7 +6667,7 @@ function isHidden( elem, el ) { |
|---|
| 971 | } |
|---|
| 972 | |
|---|
| 973 | function showHide( elements, show ) { |
|---|
| 974 | - var elem, |
|---|
| 975 | + var display, elem, hidden, |
|---|
| 976 | values = [], |
|---|
| 977 | index = 0, |
|---|
| 978 | length = elements.length; |
|---|
| 979 | @@ -6658,11 +6677,13 @@ function showHide( elements, show ) { |
|---|
| 980 | if ( !elem.style ) { |
|---|
| 981 | continue; |
|---|
| 982 | } |
|---|
| 983 | + |
|---|
| 984 | values[ index ] = jQuery._data( elem, "olddisplay" ); |
|---|
| 985 | + display = elem.style.display; |
|---|
| 986 | if ( show ) { |
|---|
| 987 | // Reset the inline display of this element to learn if it is |
|---|
| 988 | // being hidden by cascaded rules or not |
|---|
| 989 | - if ( !values[ index ] && elem.style.display === "none" ) { |
|---|
| 990 | + if ( !values[ index ] && display === "none" ) { |
|---|
| 991 | elem.style.display = ""; |
|---|
| 992 | } |
|---|
| 993 | |
|---|
| 994 | @@ -6672,8 +6693,15 @@ function showHide( elements, show ) { |
|---|
| 995 | if ( elem.style.display === "" && isHidden( elem ) ) { |
|---|
| 996 | values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); |
|---|
| 997 | } |
|---|
| 998 | - } else if ( !values[ index ] && !isHidden( elem ) ) { |
|---|
| 999 | - jQuery._data( elem, "olddisplay", jQuery.css( elem, "display" ) ); |
|---|
| 1000 | + } else { |
|---|
| 1001 | + |
|---|
| 1002 | + if ( !values[ index ] ) { |
|---|
| 1003 | + hidden = isHidden( elem ); |
|---|
| 1004 | + |
|---|
| 1005 | + if ( display && display !== "none" || !hidden ) { |
|---|
| 1006 | + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); |
|---|
| 1007 | + } |
|---|
| 1008 | + } |
|---|
| 1009 | } |
|---|
| 1010 | } |
|---|
| 1011 | |
|---|
| 1012 | @@ -6695,7 +6723,7 @@ function showHide( elements, show ) { |
|---|
| 1013 | jQuery.fn.extend({ |
|---|
| 1014 | css: function( name, value ) { |
|---|
| 1015 | return jQuery.access( this, function( elem, name, value ) { |
|---|
| 1016 | - var styles, len, |
|---|
| 1017 | + var len, styles, |
|---|
| 1018 | map = {}, |
|---|
| 1019 | i = 0; |
|---|
| 1020 | |
|---|
| 1021 | @@ -6836,7 +6864,7 @@ jQuery.extend({ |
|---|
| 1022 | }, |
|---|
| 1023 | |
|---|
| 1024 | css: function( elem, name, extra, styles ) { |
|---|
| 1025 | - var val, num, hooks, |
|---|
| 1026 | + var num, val, hooks, |
|---|
| 1027 | origName = jQuery.camelCase( name ); |
|---|
| 1028 | |
|---|
| 1029 | // Make sure that we're working with the right name |
|---|
| 1030 | @@ -6862,7 +6890,7 @@ jQuery.extend({ |
|---|
| 1031 | } |
|---|
| 1032 | |
|---|
| 1033 | // Return, converting to number if forced or a qualifier was provided and val looks numeric |
|---|
| 1034 | - if ( extra ) { |
|---|
| 1035 | + if ( extra === "" || extra ) { |
|---|
| 1036 | num = parseFloat( val ); |
|---|
| 1037 | return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; |
|---|
| 1038 | } |
|---|
| 1039 | @@ -7227,7 +7255,10 @@ jQuery(function() { |
|---|
| 1040 | |
|---|
| 1041 | if ( jQuery.expr && jQuery.expr.filters ) { |
|---|
| 1042 | jQuery.expr.filters.hidden = function( elem ) { |
|---|
| 1043 | - return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); |
|---|
| 1044 | + // Support: Opera <= 12.12 |
|---|
| 1045 | + // Opera reports offsetWidths and offsetHeights less than zero on some elements |
|---|
| 1046 | + return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 || |
|---|
| 1047 | + (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none"); |
|---|
| 1048 | }; |
|---|
| 1049 | |
|---|
| 1050 | jQuery.expr.filters.visible = function( elem ) { |
|---|
| 1051 | @@ -7265,7 +7296,7 @@ jQuery.each({ |
|---|
| 1052 | var r20 = /%20/g, |
|---|
| 1053 | rbracket = /\[\]$/, |
|---|
| 1054 | rCRLF = /\r?\n/g, |
|---|
| 1055 | - rsubmitterTypes = /^(?:submit|button|image|reset)$/i, |
|---|
| 1056 | + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, |
|---|
| 1057 | rsubmittable = /^(?:input|select|textarea|keygen)/i; |
|---|
| 1058 | |
|---|
| 1059 | jQuery.fn.extend({ |
|---|
| 1060 | @@ -7361,11 +7392,25 @@ function buildParams( prefix, obj, traditional, add ) { |
|---|
| 1061 | add( prefix, obj ); |
|---|
| 1062 | } |
|---|
| 1063 | } |
|---|
| 1064 | +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + |
|---|
| 1065 | + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + |
|---|
| 1066 | + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { |
|---|
| 1067 | + |
|---|
| 1068 | + // Handle event binding |
|---|
| 1069 | + jQuery.fn[ name ] = function( data, fn ) { |
|---|
| 1070 | + return arguments.length > 0 ? |
|---|
| 1071 | + this.on( name, null, data, fn ) : |
|---|
| 1072 | + this.trigger( name ); |
|---|
| 1073 | + }; |
|---|
| 1074 | +}); |
|---|
| 1075 | + |
|---|
| 1076 | +jQuery.fn.hover = function( fnOver, fnOut ) { |
|---|
| 1077 | + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); |
|---|
| 1078 | +}; |
|---|
| 1079 | var |
|---|
| 1080 | // Document location |
|---|
| 1081 | ajaxLocParts, |
|---|
| 1082 | ajaxLocation, |
|---|
| 1083 | - |
|---|
| 1084 | ajax_nonce = jQuery.now(), |
|---|
| 1085 | |
|---|
| 1086 | ajax_rquery = /\?/, |
|---|
| 1087 | @@ -7478,7 +7523,7 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX |
|---|
| 1088 | // that takes "flat" options (not to be deep extended) |
|---|
| 1089 | // Fixes #9887 |
|---|
| 1090 | function ajaxExtend( target, src ) { |
|---|
| 1091 | - var key, deep, |
|---|
| 1092 | + var deep, key, |
|---|
| 1093 | flatOptions = jQuery.ajaxSettings.flatOptions || {}; |
|---|
| 1094 | |
|---|
| 1095 | for ( key in src ) { |
|---|
| 1096 | @@ -7498,7 +7543,7 @@ jQuery.fn.load = function( url, params, callback ) { |
|---|
| 1097 | return _load.apply( this, arguments ); |
|---|
| 1098 | } |
|---|
| 1099 | |
|---|
| 1100 | - var selector, type, response, |
|---|
| 1101 | + var selector, response, type, |
|---|
| 1102 | self = this, |
|---|
| 1103 | off = url.indexOf(" "); |
|---|
| 1104 | |
|---|
| 1105 | @@ -7679,20 +7724,23 @@ jQuery.extend({ |
|---|
| 1106 | // Force options to be an object |
|---|
| 1107 | options = options || {}; |
|---|
| 1108 | |
|---|
| 1109 | - var transport, |
|---|
| 1110 | + var // Cross-domain detection vars |
|---|
| 1111 | + parts, |
|---|
| 1112 | + // Loop variable |
|---|
| 1113 | + i, |
|---|
| 1114 | // URL without anti-cache param |
|---|
| 1115 | cacheURL, |
|---|
| 1116 | - // Response headers |
|---|
| 1117 | + // Response headers as string |
|---|
| 1118 | responseHeadersString, |
|---|
| 1119 | - responseHeaders, |
|---|
| 1120 | // timeout handle |
|---|
| 1121 | timeoutTimer, |
|---|
| 1122 | - // Cross-domain detection vars |
|---|
| 1123 | - parts, |
|---|
| 1124 | + |
|---|
| 1125 | // To know if global events are to be dispatched |
|---|
| 1126 | fireGlobals, |
|---|
| 1127 | - // Loop variable |
|---|
| 1128 | - i, |
|---|
| 1129 | + |
|---|
| 1130 | + transport, |
|---|
| 1131 | + // Response headers |
|---|
| 1132 | + responseHeaders, |
|---|
| 1133 | // Create the final options object |
|---|
| 1134 | s = jQuery.ajaxSetup( {}, options ), |
|---|
| 1135 | // Callbacks context |
|---|
| 1136 | @@ -7987,12 +8035,17 @@ jQuery.extend({ |
|---|
| 1137 | } |
|---|
| 1138 | } |
|---|
| 1139 | |
|---|
| 1140 | - // If not modified |
|---|
| 1141 | - if ( status === 304 ) { |
|---|
| 1142 | + // if no content |
|---|
| 1143 | + if ( status === 204 ) { |
|---|
| 1144 | + isSuccess = true; |
|---|
| 1145 | + statusText = "nocontent"; |
|---|
| 1146 | + |
|---|
| 1147 | + // if not modified |
|---|
| 1148 | + } else if ( status === 304 ) { |
|---|
| 1149 | isSuccess = true; |
|---|
| 1150 | statusText = "notmodified"; |
|---|
| 1151 | |
|---|
| 1152 | - // If we have data |
|---|
| 1153 | + // If we have data, let's convert it |
|---|
| 1154 | } else { |
|---|
| 1155 | isSuccess = ajaxConvert( s, response ); |
|---|
| 1156 | statusText = isSuccess.state; |
|---|
| 1157 | @@ -8062,8 +8115,7 @@ jQuery.extend({ |
|---|
| 1158 | * - returns the corresponding response |
|---|
| 1159 | */ |
|---|
| 1160 | function ajaxHandleResponses( s, jqXHR, responses ) { |
|---|
| 1161 | - |
|---|
| 1162 | - var ct, type, finalDataType, firstDataType, |
|---|
| 1163 | + var firstDataType, ct, finalDataType, type, |
|---|
| 1164 | contents = s.contents, |
|---|
| 1165 | dataTypes = s.dataTypes, |
|---|
| 1166 | responseFields = s.responseFields; |
|---|
| 1167 | @@ -8124,8 +8176,7 @@ function ajaxHandleResponses( s, jqXHR, responses ) { |
|---|
| 1168 | |
|---|
| 1169 | // Chain conversions given the request and the original response |
|---|
| 1170 | function ajaxConvert( s, response ) { |
|---|
| 1171 | - |
|---|
| 1172 | - var conv, conv2, current, tmp, |
|---|
| 1173 | + var conv2, current, conv, tmp, |
|---|
| 1174 | converters = {}, |
|---|
| 1175 | i = 0, |
|---|
| 1176 | // Work with a copy of dataTypes in case we need to modify it for conversion |
|---|
| 1177 | @@ -8476,12 +8527,7 @@ if ( xhrSupported ) { |
|---|
| 1178 | |
|---|
| 1179 | // Listener |
|---|
| 1180 | callback = function( _, isAbort ) { |
|---|
| 1181 | - |
|---|
| 1182 | - var status, |
|---|
| 1183 | - statusText, |
|---|
| 1184 | - responseHeaders, |
|---|
| 1185 | - responses, |
|---|
| 1186 | - xml; |
|---|
| 1187 | + var status, responseHeaders, statusText, responses; |
|---|
| 1188 | |
|---|
| 1189 | // Firefox throws exceptions when accessing properties |
|---|
| 1190 | // of an xhr when a network error occurred |
|---|
| 1191 | @@ -8511,14 +8557,8 @@ if ( xhrSupported ) { |
|---|
| 1192 | } else { |
|---|
| 1193 | responses = {}; |
|---|
| 1194 | status = xhr.status; |
|---|
| 1195 | - xml = xhr.responseXML; |
|---|
| 1196 | responseHeaders = xhr.getAllResponseHeaders(); |
|---|
| 1197 | |
|---|
| 1198 | - // Construct response list |
|---|
| 1199 | - if ( xml && xml.documentElement /* #4958 */ ) { |
|---|
| 1200 | - responses.xml = xml; |
|---|
| 1201 | - } |
|---|
| 1202 | - |
|---|
| 1203 | // When requesting binary data, IE6-9 will throw an exception |
|---|
| 1204 | // on any attempt to access responseText (#11426) |
|---|
| 1205 | if ( typeof xhr.responseText === "string" ) { |
|---|
| 1206 | @@ -8768,7 +8808,7 @@ function Animation( elem, properties, options ) { |
|---|
| 1207 | } |
|---|
| 1208 | |
|---|
| 1209 | function propFilter( props, specialEasing ) { |
|---|
| 1210 | - var index, name, easing, value, hooks; |
|---|
| 1211 | + var value, name, index, easing, hooks; |
|---|
| 1212 | |
|---|
| 1213 | // camelCase, specialEasing and expand cssHook pass |
|---|
| 1214 | for ( index in props ) { |
|---|
| 1215 | @@ -8836,7 +8876,9 @@ jQuery.Animation = jQuery.extend( Animation, { |
|---|
| 1216 | |
|---|
| 1217 | function defaultPrefilter( elem, props, opts ) { |
|---|
| 1218 | /*jshint validthis:true */ |
|---|
| 1219 | - var index, prop, value, length, dataShow, toggle, tween, hooks, oldfire, |
|---|
| 1220 | + var prop, index, length, |
|---|
| 1221 | + value, dataShow, toggle, |
|---|
| 1222 | + tween, hooks, oldfire, |
|---|
| 1223 | anim = this, |
|---|
| 1224 | style = elem.style, |
|---|
| 1225 | orig = {}, |
|---|
| 1226 | @@ -8896,7 +8938,7 @@ function defaultPrefilter( elem, props, opts ) { |
|---|
| 1227 | if ( opts.overflow ) { |
|---|
| 1228 | style.overflow = "hidden"; |
|---|
| 1229 | if ( !jQuery.support.shrinkWrapBlocks ) { |
|---|
| 1230 | - anim.done(function() { |
|---|
| 1231 | + anim.always(function() { |
|---|
| 1232 | style.overflow = opts.overflow[ 0 ]; |
|---|
| 1233 | style.overflowX = opts.overflow[ 1 ]; |
|---|
| 1234 | style.overflowY = opts.overflow[ 2 ]; |
|---|
| 1235 | @@ -9020,11 +9062,11 @@ Tween.propHooks = { |
|---|
| 1236 | return tween.elem[ tween.prop ]; |
|---|
| 1237 | } |
|---|
| 1238 | |
|---|
| 1239 | - // passing a non empty string as a 3rd parameter to .css will automatically |
|---|
| 1240 | + // passing an empty string as a 3rd parameter to .css will automatically |
|---|
| 1241 | // attempt a parseFloat and fallback to a string if the parse fails |
|---|
| 1242 | // so, simple values such as "10px" are parsed to Float. |
|---|
| 1243 | // complex values such as "rotate(1rad)" are returned as is. |
|---|
| 1244 | - result = jQuery.css( tween.elem, tween.prop, "auto" ); |
|---|
| 1245 | + result = jQuery.css( tween.elem, tween.prop, "" ); |
|---|
| 1246 | // Empty strings, null, undefined and "auto" are converted to 0. |
|---|
| 1247 | return !result || result === "auto" ? 0 : result; |
|---|
| 1248 | }, |
|---|
| 1249 | @@ -9346,7 +9388,7 @@ jQuery.fn.offset = function( options ) { |
|---|
| 1250 | |
|---|
| 1251 | // If we don't have gBCR, just use 0,0 rather than error |
|---|
| 1252 | // BlackBerry 5, iOS 3 (original iPhone) |
|---|
| 1253 | - if ( typeof elem.getBoundingClientRect !== "undefined" ) { |
|---|
| 1254 | + if ( typeof elem.getBoundingClientRect !== core_strundefined ) { |
|---|
| 1255 | box = elem.getBoundingClientRect(); |
|---|
| 1256 | } |
|---|
| 1257 | win = getWindow( doc ); |
|---|