1
1
/*!
2
- * jQuery JavaScript Library v2.2.0
2
+ * jQuery JavaScript Library v2.2.2
3
3
* http://jquery.com/
4
4
*
5
5
* Includes Sizzle.js
9
9
* Released under the MIT license
10
10
* http://jquery.org/license
11
11
*
12
- * Date: 2016-01-08T20:02Z
12
+ * Date: 2016-03-17T17:51Z
13
13
*/
14
14
15
15
( function ( global , factory ) {
@@ -65,7 +65,7 @@ var support = {};
65
65
66
66
67
67
var
68
- version = "2.2.0 " ,
68
+ version = "2.2.2 " ,
69
69
70
70
// Define a local copy of jQuery
71
71
jQuery = function ( selector , context ) {
@@ -276,6 +276,7 @@ jQuery.extend( {
276
276
} ,
277
277
278
278
isPlainObject : function ( obj ) {
279
+ var key ;
279
280
280
281
// Not plain objects:
281
282
// - Any object or value whose internal [[Class]] property is not "[object Object]"
@@ -285,14 +286,18 @@ jQuery.extend( {
285
286
return false ;
286
287
}
287
288
289
+ // Not own constructor property must be Object
288
290
if ( obj . constructor &&
289
- ! hasOwn . call ( obj . constructor . prototype , "isPrototypeOf" ) ) {
291
+ ! hasOwn . call ( obj , "constructor" ) &&
292
+ ! hasOwn . call ( obj . constructor . prototype || { } , "isPrototypeOf" ) ) {
290
293
return false ;
291
294
}
292
295
293
- // If the function hasn't returned already, we're confident that
294
- // |obj| is a plain object, created by {} or constructed with new Object
295
- return true ;
296
+ // Own properties are enumerated firstly, so to speed up,
297
+ // if last one is own, then all properties are own
298
+ for ( key in obj ) { }
299
+
300
+ return key === undefined || hasOwn . call ( obj , key ) ;
296
301
} ,
297
302
298
303
isEmptyObject : function ( obj ) {
@@ -4479,7 +4484,7 @@ function on( elem, types, selector, data, fn, one ) {
4479
4484
if ( fn === false ) {
4480
4485
fn = returnFalse ;
4481
4486
} else if ( ! fn ) {
4482
- return this ;
4487
+ return elem ;
4483
4488
}
4484
4489
4485
4490
if ( one === 1 ) {
@@ -5128,14 +5133,14 @@ var
5128
5133
rscriptTypeMasked = / ^ t r u e \/ ( .* ) / ,
5129
5134
rcleanScript = / ^ \s * < ! (?: \[ C D A T A \[ | - - ) | (?: \] \] | - - ) > \s * $ / g;
5130
5135
5136
+ // Manipulating tables requires a tbody
5131
5137
function manipulationTarget ( elem , content ) {
5132
- if ( jQuery . nodeName ( elem , "table" ) &&
5133
- jQuery . nodeName ( content . nodeType !== 11 ? content : content . firstChild , "tr" ) ) {
5134
-
5135
- return elem . getElementsByTagName ( "tbody" ) [ 0 ] || elem ;
5136
- }
5138
+ return jQuery . nodeName ( elem , "table" ) &&
5139
+ jQuery . nodeName ( content . nodeType !== 11 ? content : content . firstChild , "tr" ) ?
5137
5140
5138
- return elem ;
5141
+ elem . getElementsByTagName ( "tbody" ) [ 0 ] ||
5142
+ elem . appendChild ( elem . ownerDocument . createElement ( "tbody" ) ) :
5143
+ elem ;
5139
5144
}
5140
5145
5141
5146
// Replace/restore the type attribute of script elements for safe DOM manipulation
@@ -5642,7 +5647,7 @@ var getStyles = function( elem ) {
5642
5647
// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
5643
5648
var view = elem . ownerDocument . defaultView ;
5644
5649
5645
- if ( ! view . opener ) {
5650
+ if ( ! view || ! view . opener ) {
5646
5651
view = window ;
5647
5652
}
5648
5653
@@ -5791,15 +5796,18 @@ function curCSS( elem, name, computed ) {
5791
5796
style = elem . style ;
5792
5797
5793
5798
computed = computed || getStyles ( elem ) ;
5799
+ ret = computed ? computed . getPropertyValue ( name ) || computed [ name ] : undefined ;
5800
+
5801
+ // Support: Opera 12.1x only
5802
+ // Fall back to style even without computed
5803
+ // computed is undefined for elems on document fragments
5804
+ if ( ( ret === "" || ret === undefined ) && ! jQuery . contains ( elem . ownerDocument , elem ) ) {
5805
+ ret = jQuery . style ( elem , name ) ;
5806
+ }
5794
5807
5795
5808
// Support: IE9
5796
5809
// getPropertyValue is only needed for .css('filter') (#12537)
5797
5810
if ( computed ) {
5798
- ret = computed . getPropertyValue ( name ) || computed [ name ] ;
5799
-
5800
- if ( ret === "" && ! jQuery . contains ( elem . ownerDocument , elem ) ) {
5801
- ret = jQuery . style ( elem , name ) ;
5802
- }
5803
5811
5804
5812
// A tribute to the "awesome hack by Dean Edwards"
5805
5813
// Android Browser returns percentage for some values,
@@ -7322,6 +7330,12 @@ jQuery.extend( {
7322
7330
}
7323
7331
} ) ;
7324
7332
7333
+ // Support: IE <=11 only
7334
+ // Accessing the selectedIndex property
7335
+ // forces the browser to respect setting selected
7336
+ // on the option
7337
+ // The getter ensures a default option is selected
7338
+ // when in an optgroup
7325
7339
if ( ! support . optSelected ) {
7326
7340
jQuery . propHooks . selected = {
7327
7341
get : function ( elem ) {
@@ -7330,6 +7344,16 @@ if ( !support.optSelected ) {
7330
7344
parent . parentNode . selectedIndex ;
7331
7345
}
7332
7346
return null ;
7347
+ } ,
7348
+ set : function ( elem ) {
7349
+ var parent = elem . parentNode ;
7350
+ if ( parent ) {
7351
+ parent . selectedIndex ;
7352
+
7353
+ if ( parent . parentNode ) {
7354
+ parent . parentNode . selectedIndex ;
7355
+ }
7356
+ }
7333
7357
}
7334
7358
} ;
7335
7359
}
@@ -7524,7 +7548,8 @@ jQuery.fn.extend( {
7524
7548
7525
7549
7526
7550
7527
- var rreturn = / \r / g;
7551
+ var rreturn = / \r / g,
7552
+ rspaces = / [ \x20 \t \r \n \f ] + / g;
7528
7553
7529
7554
jQuery . fn . extend ( {
7530
7555
val : function ( value ) {
@@ -7600,9 +7625,15 @@ jQuery.extend( {
7600
7625
option : {
7601
7626
get : function ( elem ) {
7602
7627
7603
- // Support: IE<11
7604
- // option.value not trimmed (#14858)
7605
- return jQuery . trim ( elem . value ) ;
7628
+ var val = jQuery . find . attr ( elem , "value" ) ;
7629
+ return val != null ?
7630
+ val :
7631
+
7632
+ // Support: IE10-11+
7633
+ // option.text throws exceptions (#14686, #14858)
7634
+ // Strip and collapse whitespace
7635
+ // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
7636
+ jQuery . trim ( jQuery . text ( elem ) ) . replace ( rspaces , " " ) ;
7606
7637
}
7607
7638
} ,
7608
7639
select : {
@@ -7655,7 +7686,7 @@ jQuery.extend( {
7655
7686
while ( i -- ) {
7656
7687
option = options [ i ] ;
7657
7688
if ( option . selected =
7658
- jQuery . inArray ( jQuery . valHooks . option . get ( option ) , values ) > - 1
7689
+ jQuery . inArray ( jQuery . valHooks . option . get ( option ) , values ) > - 1
7659
7690
) {
7660
7691
optionSet = true ;
7661
7692
}
@@ -7849,7 +7880,7 @@ jQuery.extend( jQuery.event, {
7849
7880
// But now, this "simulate" function is used only for events
7850
7881
// for which stopPropagation() is noop, so there is no need for that anymore.
7851
7882
//
7852
- // For the compat branch though, guard for "click" and "submit"
7883
+ // For the 1.x branch though, guard for "click" and "submit"
7853
7884
// events is still used, but was moved to jQuery.event.stopPropagation function
7854
7885
// because `originalEvent` should point to the original event for the constancy
7855
7886
// with other events and for more focused logic
@@ -9350,18 +9381,6 @@ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
9350
9381
9351
9382
9352
9383
9353
- // Support: Safari 8+
9354
- // In Safari 8 documents created via document.implementation.createHTMLDocument
9355
- // collapse sibling forms: the second one becomes a child of the first one.
9356
- // Because of that, this security measure has to be disabled in Safari 8.
9357
- // https://bugs.webkit.org/show_bug.cgi?id=137337
9358
- support . createHTMLDocument = ( function ( ) {
9359
- var body = document . implementation . createHTMLDocument ( "" ) . body ;
9360
- body . innerHTML = "<form></form><form></form>" ;
9361
- return body . childNodes . length === 2 ;
9362
- } ) ( ) ;
9363
-
9364
-
9365
9384
// Argument "data" should be string of html
9366
9385
// context (optional): If specified, the fragment will be created in this context,
9367
9386
// defaults to document
@@ -9374,12 +9393,7 @@ jQuery.parseHTML = function( data, context, keepScripts ) {
9374
9393
keepScripts = context ;
9375
9394
context = false ;
9376
9395
}
9377
-
9378
- // Stop scripts or inline event handlers from being executed immediately
9379
- // by using document.implementation
9380
- context = context || ( support . createHTMLDocument ?
9381
- document . implementation . createHTMLDocument ( "" ) :
9382
- document ) ;
9396
+ context = context || document ;
9383
9397
9384
9398
var parsed = rsingleTag . exec ( data ) ,
9385
9399
scripts = ! keepScripts && [ ] ;
@@ -9619,11 +9633,8 @@ jQuery.fn.extend( {
9619
9633
}
9620
9634
9621
9635
// Add offsetParent borders
9622
- // Subtract offsetParent scroll positions
9623
- parentOffset . top += jQuery . css ( offsetParent [ 0 ] , "borderTopWidth" , true ) -
9624
- offsetParent . scrollTop ( ) ;
9625
- parentOffset . left += jQuery . css ( offsetParent [ 0 ] , "borderLeftWidth" , true ) -
9626
- offsetParent . scrollLeft ( ) ;
9636
+ parentOffset . top += jQuery . css ( offsetParent [ 0 ] , "borderTopWidth" , true ) ;
9637
+ parentOffset . left += jQuery . css ( offsetParent [ 0 ] , "borderLeftWidth" , true ) ;
9627
9638
}
9628
9639
9629
9640
// Subtract parent offsets and element margins
0 commit comments