jquery-rails 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of jquery-rails might be problematic. Click here for more details.
- data/CHANGELOG.md +8 -0
- data/README.md +2 -2
- data/jquery-rails.gemspec +1 -1
- data/lib/jquery/rails/version.rb +4 -4
- data/vendor/assets/javascripts/jquery-ui.js +6772 -6737
- data/vendor/assets/javascripts/jquery-ui.min.js +8 -784
- data/vendor/assets/javascripts/jquery.js +654 -516
- data/vendor/assets/javascripts/jquery.min.js +4 -4
- data/vendor/assets/javascripts/jquery_ujs.js +10 -6
- metadata +6 -6
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* jQuery JavaScript Library v1.7.
|
2
|
+
* jQuery JavaScript Library v1.7.2
|
3
3
|
* http://jquery.com/
|
4
4
|
*
|
5
5
|
* Copyright 2011, John Resig
|
@@ -11,7 +11,7 @@
|
|
11
11
|
* Copyright 2011, The Dojo Foundation
|
12
12
|
* Released under the MIT, BSD, and GPL Licenses.
|
13
13
|
*
|
14
|
-
* Date:
|
14
|
+
* Date: Wed Mar 21 12:46:34 2012 -0700
|
15
15
|
*/
|
16
16
|
(function( window, undefined ) {
|
17
17
|
|
@@ -210,7 +210,7 @@ jQuery.fn = jQuery.prototype = {
|
|
210
210
|
selector: "",
|
211
211
|
|
212
212
|
// The current version of jQuery being used
|
213
|
-
jquery: "1.7.
|
213
|
+
jquery: "1.7.2",
|
214
214
|
|
215
215
|
// The default length of a jQuery object is 0
|
216
216
|
length: 0,
|
@@ -497,9 +497,8 @@ jQuery.extend({
|
|
497
497
|
return jQuery.type(obj) === "array";
|
498
498
|
},
|
499
499
|
|
500
|
-
// A crude way of determining if an object is a window
|
501
500
|
isWindow: function( obj ) {
|
502
|
-
return obj
|
501
|
+
return obj != null && obj == obj.window;
|
503
502
|
},
|
504
503
|
|
505
504
|
isNumeric: function( obj ) {
|
@@ -579,6 +578,9 @@ jQuery.extend({
|
|
579
578
|
|
580
579
|
// Cross-browser xml parsing
|
581
580
|
parseXML: function( data ) {
|
581
|
+
if ( typeof data !== "string" || !data ) {
|
582
|
+
return null;
|
583
|
+
}
|
582
584
|
var xml, tmp;
|
583
585
|
try {
|
584
586
|
if ( window.DOMParser ) { // Standard
|
@@ -822,31 +824,55 @@ jQuery.extend({
|
|
822
824
|
|
823
825
|
// Mutifunctional method to get and set values to a collection
|
824
826
|
// The value/s can optionally be executed if it's a function
|
825
|
-
access: function( elems, key, value,
|
826
|
-
var
|
827
|
+
access: function( elems, fn, key, value, chainable, emptyGet, pass ) {
|
828
|
+
var exec,
|
829
|
+
bulk = key == null,
|
830
|
+
i = 0,
|
831
|
+
length = elems.length;
|
827
832
|
|
828
|
-
//
|
829
|
-
if ( typeof key === "object" ) {
|
830
|
-
for (
|
831
|
-
jQuery.access( elems,
|
833
|
+
// Sets many values
|
834
|
+
if ( key && typeof key === "object" ) {
|
835
|
+
for ( i in key ) {
|
836
|
+
jQuery.access( elems, fn, i, key[i], 1, emptyGet, value );
|
832
837
|
}
|
833
|
-
|
834
|
-
}
|
838
|
+
chainable = 1;
|
835
839
|
|
836
|
-
//
|
837
|
-
if ( value !== undefined ) {
|
840
|
+
// Sets one value
|
841
|
+
} else if ( value !== undefined ) {
|
838
842
|
// Optionally, function values get executed if exec is true
|
839
|
-
exec =
|
843
|
+
exec = pass === undefined && jQuery.isFunction( value );
|
844
|
+
|
845
|
+
if ( bulk ) {
|
846
|
+
// Bulk operations only iterate when executing function values
|
847
|
+
if ( exec ) {
|
848
|
+
exec = fn;
|
849
|
+
fn = function( elem, key, value ) {
|
850
|
+
return exec.call( jQuery( elem ), value );
|
851
|
+
};
|
852
|
+
|
853
|
+
// Otherwise they run against the entire set
|
854
|
+
} else {
|
855
|
+
fn.call( elems, value );
|
856
|
+
fn = null;
|
857
|
+
}
|
858
|
+
}
|
840
859
|
|
841
|
-
|
842
|
-
|
860
|
+
if ( fn ) {
|
861
|
+
for (; i < length; i++ ) {
|
862
|
+
fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
|
863
|
+
}
|
843
864
|
}
|
844
865
|
|
845
|
-
|
866
|
+
chainable = 1;
|
846
867
|
}
|
847
868
|
|
848
|
-
|
849
|
-
|
869
|
+
return chainable ?
|
870
|
+
elems :
|
871
|
+
|
872
|
+
// Gets
|
873
|
+
bulk ?
|
874
|
+
fn.call( elems ) :
|
875
|
+
length ? fn( elems[0], key ) : emptyGet;
|
850
876
|
},
|
851
877
|
|
852
878
|
now: function() {
|
@@ -1005,6 +1031,8 @@ jQuery.Callbacks = function( flags ) {
|
|
1005
1031
|
stack = [],
|
1006
1032
|
// Last fire value (for non-forgettable lists)
|
1007
1033
|
memory,
|
1034
|
+
// Flag to know if list was already fired
|
1035
|
+
fired,
|
1008
1036
|
// Flag to know if list is currently firing
|
1009
1037
|
firing,
|
1010
1038
|
// First callback to fire (used internally by add and fireWith)
|
@@ -1038,6 +1066,7 @@ jQuery.Callbacks = function( flags ) {
|
|
1038
1066
|
fire = function( context, args ) {
|
1039
1067
|
args = args || [];
|
1040
1068
|
memory = !flags.memory || [ context, args ];
|
1069
|
+
fired = true;
|
1041
1070
|
firing = true;
|
1042
1071
|
firingIndex = firingStart || 0;
|
1043
1072
|
firingStart = 0;
|
@@ -1173,7 +1202,7 @@ jQuery.Callbacks = function( flags ) {
|
|
1173
1202
|
},
|
1174
1203
|
// To know if the callbacks have already been called at least once
|
1175
1204
|
fired: function() {
|
1176
|
-
return !!
|
1205
|
+
return !!fired;
|
1177
1206
|
}
|
1178
1207
|
};
|
1179
1208
|
|
@@ -1336,7 +1365,6 @@ jQuery.support = (function() {
|
|
1336
1365
|
select,
|
1337
1366
|
opt,
|
1338
1367
|
input,
|
1339
|
-
marginDiv,
|
1340
1368
|
fragment,
|
1341
1369
|
tds,
|
1342
1370
|
events,
|
@@ -1419,9 +1447,13 @@ jQuery.support = (function() {
|
|
1419
1447
|
noCloneEvent: true,
|
1420
1448
|
inlineBlockNeedsLayout: false,
|
1421
1449
|
shrinkWrapBlocks: false,
|
1422
|
-
reliableMarginRight: true
|
1450
|
+
reliableMarginRight: true,
|
1451
|
+
pixelMargin: true
|
1423
1452
|
};
|
1424
1453
|
|
1454
|
+
// jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead
|
1455
|
+
jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat");
|
1456
|
+
|
1425
1457
|
// Make sure checked status is properly cloned
|
1426
1458
|
input.checked = true;
|
1427
1459
|
support.noCloneChecked = input.cloneNode( true ).checked;
|
@@ -1456,6 +1488,10 @@ jQuery.support = (function() {
|
|
1456
1488
|
support.radioValue = input.value === "t";
|
1457
1489
|
|
1458
1490
|
input.setAttribute("checked", "checked");
|
1491
|
+
|
1492
|
+
// #11217 - WebKit loses check when the name is after the checked attribute
|
1493
|
+
input.setAttribute( "name", "t" );
|
1494
|
+
|
1459
1495
|
div.appendChild( input );
|
1460
1496
|
fragment = document.createDocumentFragment();
|
1461
1497
|
fragment.appendChild( div.lastChild );
|
@@ -1470,23 +1506,6 @@ jQuery.support = (function() {
|
|
1470
1506
|
fragment.removeChild( input );
|
1471
1507
|
fragment.appendChild( div );
|
1472
1508
|
|
1473
|
-
div.innerHTML = "";
|
1474
|
-
|
1475
|
-
// Check if div with explicit width and no margin-right incorrectly
|
1476
|
-
// gets computed margin-right based on width of container. For more
|
1477
|
-
// info see bug #3333
|
1478
|
-
// Fails in WebKit before Feb 2011 nightlies
|
1479
|
-
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
|
1480
|
-
if ( window.getComputedStyle ) {
|
1481
|
-
marginDiv = document.createElement( "div" );
|
1482
|
-
marginDiv.style.width = "0";
|
1483
|
-
marginDiv.style.marginRight = "0";
|
1484
|
-
div.style.width = "2px";
|
1485
|
-
div.appendChild( marginDiv );
|
1486
|
-
support.reliableMarginRight =
|
1487
|
-
( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
|
1488
|
-
}
|
1489
|
-
|
1490
1509
|
// Technique from Juriy Zaytsev
|
1491
1510
|
// http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
|
1492
1511
|
// We only care about the case where non-standard event systems
|
@@ -1494,7 +1513,7 @@ jQuery.support = (function() {
|
|
1494
1513
|
// avoid an eval call (in setAttribute) which can cause CSP
|
1495
1514
|
// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
|
1496
1515
|
if ( div.attachEvent ) {
|
1497
|
-
for( i in {
|
1516
|
+
for ( i in {
|
1498
1517
|
submit: 1,
|
1499
1518
|
change: 1,
|
1500
1519
|
focusin: 1
|
@@ -1512,12 +1531,13 @@ jQuery.support = (function() {
|
|
1512
1531
|
fragment.removeChild( div );
|
1513
1532
|
|
1514
1533
|
// Null elements to avoid leaks in IE
|
1515
|
-
fragment = select = opt =
|
1534
|
+
fragment = select = opt = div = input = null;
|
1516
1535
|
|
1517
1536
|
// Run tests that need a body at doc ready
|
1518
1537
|
jQuery(function() {
|
1519
1538
|
var container, outer, inner, table, td, offsetSupport,
|
1520
|
-
|
1539
|
+
marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight,
|
1540
|
+
paddingMarginBorderVisibility, paddingMarginBorder,
|
1521
1541
|
body = document.getElementsByTagName("body")[0];
|
1522
1542
|
|
1523
1543
|
if ( !body ) {
|
@@ -1526,15 +1546,16 @@ jQuery.support = (function() {
|
|
1526
1546
|
}
|
1527
1547
|
|
1528
1548
|
conMarginTop = 1;
|
1529
|
-
|
1530
|
-
|
1531
|
-
|
1532
|
-
|
1533
|
-
|
1549
|
+
paddingMarginBorder = "padding:0;margin:0;border:";
|
1550
|
+
positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;";
|
1551
|
+
paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;";
|
1552
|
+
style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;";
|
1553
|
+
html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" +
|
1554
|
+
"<table " + style + "' cellpadding='0' cellspacing='0'>" +
|
1534
1555
|
"<tr><td></td></tr></table>";
|
1535
1556
|
|
1536
1557
|
container = document.createElement("div");
|
1537
|
-
container.style.cssText =
|
1558
|
+
container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";
|
1538
1559
|
body.insertBefore( container, body.firstChild );
|
1539
1560
|
|
1540
1561
|
// Construct the test element
|
@@ -1548,7 +1569,7 @@ jQuery.support = (function() {
|
|
1548
1569
|
// display:none (it is still safe to use offsets if a parent element is
|
1549
1570
|
// hidden; don safety goggles and see bug #4512 for more information).
|
1550
1571
|
// (only IE 8 fails this test)
|
1551
|
-
div.innerHTML = "<table><tr><td style='
|
1572
|
+
div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>";
|
1552
1573
|
tds = div.getElementsByTagName( "td" );
|
1553
1574
|
isSupported = ( tds[ 0 ].offsetHeight === 0 );
|
1554
1575
|
|
@@ -1559,28 +1580,44 @@ jQuery.support = (function() {
|
|
1559
1580
|
// (IE <= 8 fail this test)
|
1560
1581
|
support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
|
1561
1582
|
|
1562
|
-
//
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1583
|
+
// Check if div with explicit width and no margin-right incorrectly
|
1584
|
+
// gets computed margin-right based on width of container. For more
|
1585
|
+
// info see bug #3333
|
1586
|
+
// Fails in WebKit before Feb 2011 nightlies
|
1587
|
+
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
|
1588
|
+
if ( window.getComputedStyle ) {
|
1589
|
+
div.innerHTML = "";
|
1590
|
+
marginDiv = document.createElement( "div" );
|
1591
|
+
marginDiv.style.width = "0";
|
1592
|
+
marginDiv.style.marginRight = "0";
|
1593
|
+
div.style.width = "2px";
|
1594
|
+
div.appendChild( marginDiv );
|
1595
|
+
support.reliableMarginRight =
|
1596
|
+
( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
|
1597
|
+
}
|
1566
1598
|
|
1567
1599
|
if ( typeof div.style.zoom !== "undefined" ) {
|
1568
1600
|
// Check if natively block-level elements act like inline-block
|
1569
1601
|
// elements when setting their display to 'inline' and giving
|
1570
1602
|
// them layout
|
1571
1603
|
// (IE < 8 does this)
|
1604
|
+
div.innerHTML = "";
|
1605
|
+
div.style.width = div.style.padding = "1px";
|
1606
|
+
div.style.border = 0;
|
1607
|
+
div.style.overflow = "hidden";
|
1572
1608
|
div.style.display = "inline";
|
1573
1609
|
div.style.zoom = 1;
|
1574
|
-
support.inlineBlockNeedsLayout = ( div.offsetWidth ===
|
1610
|
+
support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
|
1575
1611
|
|
1576
1612
|
// Check if elements with layout shrink-wrap their children
|
1577
1613
|
// (IE 6 does this)
|
1578
|
-
div.style.display = "";
|
1579
|
-
div.
|
1580
|
-
|
1614
|
+
div.style.display = "block";
|
1615
|
+
div.style.overflow = "visible";
|
1616
|
+
div.innerHTML = "<div style='width:5px;'></div>";
|
1617
|
+
support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
|
1581
1618
|
}
|
1582
1619
|
|
1583
|
-
div.style.cssText =
|
1620
|
+
div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility;
|
1584
1621
|
div.innerHTML = html;
|
1585
1622
|
|
1586
1623
|
outer = div.firstChild;
|
@@ -1605,8 +1642,17 @@ jQuery.support = (function() {
|
|
1605
1642
|
offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );
|
1606
1643
|
offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );
|
1607
1644
|
|
1645
|
+
if ( window.getComputedStyle ) {
|
1646
|
+
div.style.marginTop = "1%";
|
1647
|
+
support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%";
|
1648
|
+
}
|
1649
|
+
|
1650
|
+
if ( typeof container.style.zoom !== "undefined" ) {
|
1651
|
+
container.style.zoom = 1;
|
1652
|
+
}
|
1653
|
+
|
1608
1654
|
body.removeChild( container );
|
1609
|
-
div
|
1655
|
+
marginDiv = div = container = null;
|
1610
1656
|
|
1611
1657
|
jQuery.extend( support, offsetSupport );
|
1612
1658
|
});
|
@@ -1863,62 +1909,70 @@ jQuery.extend({
|
|
1863
1909
|
|
1864
1910
|
jQuery.fn.extend({
|
1865
1911
|
data: function( key, value ) {
|
1866
|
-
var parts, attr, name,
|
1912
|
+
var parts, part, attr, name, l,
|
1913
|
+
elem = this[0],
|
1914
|
+
i = 0,
|
1867
1915
|
data = null;
|
1868
1916
|
|
1869
|
-
|
1917
|
+
// Gets all values
|
1918
|
+
if ( key === undefined ) {
|
1870
1919
|
if ( this.length ) {
|
1871
|
-
data = jQuery.data(
|
1920
|
+
data = jQuery.data( elem );
|
1872
1921
|
|
1873
|
-
if (
|
1874
|
-
attr =
|
1875
|
-
for (
|
1922
|
+
if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
|
1923
|
+
attr = elem.attributes;
|
1924
|
+
for ( l = attr.length; i < l; i++ ) {
|
1876
1925
|
name = attr[i].name;
|
1877
1926
|
|
1878
1927
|
if ( name.indexOf( "data-" ) === 0 ) {
|
1879
1928
|
name = jQuery.camelCase( name.substring(5) );
|
1880
1929
|
|
1881
|
-
dataAttr(
|
1930
|
+
dataAttr( elem, name, data[ name ] );
|
1882
1931
|
}
|
1883
1932
|
}
|
1884
|
-
jQuery._data(
|
1933
|
+
jQuery._data( elem, "parsedAttrs", true );
|
1885
1934
|
}
|
1886
1935
|
}
|
1887
1936
|
|
1888
1937
|
return data;
|
1938
|
+
}
|
1889
1939
|
|
1890
|
-
|
1940
|
+
// Sets multiple values
|
1941
|
+
if ( typeof key === "object" ) {
|
1891
1942
|
return this.each(function() {
|
1892
1943
|
jQuery.data( this, key );
|
1893
1944
|
});
|
1894
1945
|
}
|
1895
1946
|
|
1896
|
-
parts = key.split(".");
|
1947
|
+
parts = key.split( ".", 2 );
|
1897
1948
|
parts[1] = parts[1] ? "." + parts[1] : "";
|
1949
|
+
part = parts[1] + "!";
|
1898
1950
|
|
1899
|
-
|
1900
|
-
data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
|
1951
|
+
return jQuery.access( this, function( value ) {
|
1901
1952
|
|
1902
|
-
|
1903
|
-
|
1904
|
-
data = jQuery.data( this[0], key );
|
1905
|
-
data = dataAttr( this[0], key, data );
|
1906
|
-
}
|
1953
|
+
if ( value === undefined ) {
|
1954
|
+
data = this.triggerHandler( "getData" + part, [ parts[0] ] );
|
1907
1955
|
|
1908
|
-
|
1909
|
-
|
1910
|
-
|
1956
|
+
// Try to fetch any internally stored data first
|
1957
|
+
if ( data === undefined && elem ) {
|
1958
|
+
data = jQuery.data( elem, key );
|
1959
|
+
data = dataAttr( elem, key, data );
|
1960
|
+
}
|
1911
1961
|
|
1912
|
-
|
1913
|
-
|
1914
|
-
|
1915
|
-
|
1962
|
+
return data === undefined && parts[1] ?
|
1963
|
+
this.data( parts[0] ) :
|
1964
|
+
data;
|
1965
|
+
}
|
1916
1966
|
|
1917
|
-
|
1967
|
+
parts[1] = value;
|
1968
|
+
this.each(function() {
|
1969
|
+
var self = jQuery( this );
|
1970
|
+
|
1971
|
+
self.triggerHandler( "setData" + part, parts );
|
1918
1972
|
jQuery.data( this, key, value );
|
1919
|
-
self.triggerHandler( "changeData" +
|
1973
|
+
self.triggerHandler( "changeData" + part, parts );
|
1920
1974
|
});
|
1921
|
-
}
|
1975
|
+
}, null, value, arguments.length > 1, null, false );
|
1922
1976
|
},
|
1923
1977
|
|
1924
1978
|
removeData: function( key ) {
|
@@ -1942,7 +1996,7 @@ function dataAttr( elem, key, data ) {
|
|
1942
1996
|
data = data === "true" ? true :
|
1943
1997
|
data === "false" ? false :
|
1944
1998
|
data === "null" ? null :
|
1945
|
-
jQuery.isNumeric( data ) ?
|
1999
|
+
jQuery.isNumeric( data ) ? +data :
|
1946
2000
|
rbrace.test( data ) ? jQuery.parseJSON( data ) :
|
1947
2001
|
data;
|
1948
2002
|
} catch( e ) {}
|
@@ -2077,21 +2131,27 @@ jQuery.extend({
|
|
2077
2131
|
|
2078
2132
|
jQuery.fn.extend({
|
2079
2133
|
queue: function( type, data ) {
|
2134
|
+
var setter = 2;
|
2135
|
+
|
2080
2136
|
if ( typeof type !== "string" ) {
|
2081
2137
|
data = type;
|
2082
2138
|
type = "fx";
|
2139
|
+
setter--;
|
2083
2140
|
}
|
2084
2141
|
|
2085
|
-
if (
|
2142
|
+
if ( arguments.length < setter ) {
|
2086
2143
|
return jQuery.queue( this[0], type );
|
2087
2144
|
}
|
2088
|
-
return this.each(function() {
|
2089
|
-
var queue = jQuery.queue( this, type, data );
|
2090
2145
|
|
2091
|
-
|
2092
|
-
|
2093
|
-
|
2094
|
-
|
2146
|
+
return data === undefined ?
|
2147
|
+
this :
|
2148
|
+
this.each(function() {
|
2149
|
+
var queue = jQuery.queue( this, type, data );
|
2150
|
+
|
2151
|
+
if ( type === "fx" && queue[0] !== "inprogress" ) {
|
2152
|
+
jQuery.dequeue( this, type );
|
2153
|
+
}
|
2154
|
+
});
|
2095
2155
|
},
|
2096
2156
|
dequeue: function( type ) {
|
2097
2157
|
return this.each(function() {
|
@@ -2145,7 +2205,7 @@ jQuery.fn.extend({
|
|
2145
2205
|
}
|
2146
2206
|
}
|
2147
2207
|
resolve();
|
2148
|
-
return defer.promise();
|
2208
|
+
return defer.promise( object );
|
2149
2209
|
}
|
2150
2210
|
});
|
2151
2211
|
|
@@ -2164,7 +2224,7 @@ var rclass = /[\n\t\r]/g,
|
|
2164
2224
|
|
2165
2225
|
jQuery.fn.extend({
|
2166
2226
|
attr: function( name, value ) {
|
2167
|
-
return jQuery.access( this, name, value,
|
2227
|
+
return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
|
2168
2228
|
},
|
2169
2229
|
|
2170
2230
|
removeAttr: function( name ) {
|
@@ -2174,7 +2234,7 @@ jQuery.fn.extend({
|
|
2174
2234
|
},
|
2175
2235
|
|
2176
2236
|
prop: function( name, value ) {
|
2177
|
-
return jQuery.access( this, name, value,
|
2237
|
+
return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
|
2178
2238
|
},
|
2179
2239
|
|
2180
2240
|
removeProp: function( name ) {
|
@@ -2314,7 +2374,7 @@ jQuery.fn.extend({
|
|
2314
2374
|
|
2315
2375
|
if ( !arguments.length ) {
|
2316
2376
|
if ( elem ) {
|
2317
|
-
hooks = jQuery.valHooks[ elem.
|
2377
|
+
hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
|
2318
2378
|
|
2319
2379
|
if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
|
2320
2380
|
return ret;
|
@@ -2358,7 +2418,7 @@ jQuery.fn.extend({
|
|
2358
2418
|
});
|
2359
2419
|
}
|
2360
2420
|
|
2361
|
-
hooks = jQuery.valHooks[ this.
|
2421
|
+
hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
|
2362
2422
|
|
2363
2423
|
// If set returns undefined, fall back to normal setting
|
2364
2424
|
if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
|
@@ -2504,7 +2564,7 @@ jQuery.extend({
|
|
2504
2564
|
},
|
2505
2565
|
|
2506
2566
|
removeAttr: function( elem, value ) {
|
2507
|
-
var propName, attrNames, name, l,
|
2567
|
+
var propName, attrNames, name, l, isBool,
|
2508
2568
|
i = 0;
|
2509
2569
|
|
2510
2570
|
if ( value && elem.nodeType === 1 ) {
|
@@ -2516,13 +2576,17 @@ jQuery.extend({
|
|
2516
2576
|
|
2517
2577
|
if ( name ) {
|
2518
2578
|
propName = jQuery.propFix[ name ] || name;
|
2579
|
+
isBool = rboolean.test( name );
|
2519
2580
|
|
2520
2581
|
// See #9699 for explanation of this approach (setting first, then removal)
|
2521
|
-
|
2582
|
+
// Do not do this for boolean attributes (see #10870)
|
2583
|
+
if ( !isBool ) {
|
2584
|
+
jQuery.attr( elem, name, "" );
|
2585
|
+
}
|
2522
2586
|
elem.removeAttribute( getSetAttribute ? name : propName );
|
2523
2587
|
|
2524
2588
|
// Set corresponding property to false for boolean attributes
|
2525
|
-
if (
|
2589
|
+
if ( isBool && propName in elem ) {
|
2526
2590
|
elem[ propName ] = false;
|
2527
2591
|
}
|
2528
2592
|
}
|
@@ -2676,7 +2740,8 @@ if ( !getSetAttribute ) {
|
|
2676
2740
|
|
2677
2741
|
fixSpecified = {
|
2678
2742
|
name: true,
|
2679
|
-
id: true
|
2743
|
+
id: true,
|
2744
|
+
coords: true
|
2680
2745
|
};
|
2681
2746
|
|
2682
2747
|
// Use this for any attribute in IE6/7
|
@@ -2806,7 +2871,7 @@ jQuery.each([ "radio", "checkbox" ], function() {
|
|
2806
2871
|
|
2807
2872
|
var rformElems = /^(?:textarea|input|select)$/i,
|
2808
2873
|
rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
|
2809
|
-
rhoverHack =
|
2874
|
+
rhoverHack = /(?:^|\s)hover(\.\S+)?\b/,
|
2810
2875
|
rkeyEvent = /^key/,
|
2811
2876
|
rmouseEvent = /^(?:mouse|contextmenu)|click/,
|
2812
2877
|
rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
|
@@ -2854,6 +2919,7 @@ jQuery.event = {
|
|
2854
2919
|
if ( handler.handler ) {
|
2855
2920
|
handleObjIn = handler;
|
2856
2921
|
handler = handleObjIn.handler;
|
2922
|
+
selector = handleObjIn.selector;
|
2857
2923
|
}
|
2858
2924
|
|
2859
2925
|
// Make sure that the handler has a unique ID, used to find/remove it later
|
@@ -2905,7 +2971,7 @@ jQuery.event = {
|
|
2905
2971
|
handler: handler,
|
2906
2972
|
guid: handler.guid,
|
2907
2973
|
selector: selector,
|
2908
|
-
quick: quickParse( selector ),
|
2974
|
+
quick: selector && quickParse( selector ),
|
2909
2975
|
namespace: namespaces.join(".")
|
2910
2976
|
}, handleObjIn );
|
2911
2977
|
|
@@ -3194,6 +3260,7 @@ jQuery.event = {
|
|
3194
3260
|
delegateCount = handlers.delegateCount,
|
3195
3261
|
args = [].slice.call( arguments, 0 ),
|
3196
3262
|
run_all = !event.exclusive && !event.namespace,
|
3263
|
+
special = jQuery.event.special[ event.type ] || {},
|
3197
3264
|
handlerQueue = [],
|
3198
3265
|
i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;
|
3199
3266
|
|
@@ -3201,34 +3268,43 @@ jQuery.event = {
|
|
3201
3268
|
args[0] = event;
|
3202
3269
|
event.delegateTarget = this;
|
3203
3270
|
|
3271
|
+
// Call the preDispatch hook for the mapped type, and let it bail if desired
|
3272
|
+
if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
|
3273
|
+
return;
|
3274
|
+
}
|
3275
|
+
|
3204
3276
|
// Determine handlers that should run if there are delegated events
|
3205
|
-
// Avoid
|
3206
|
-
if ( delegateCount && !
|
3277
|
+
// Avoid non-left-click bubbling in Firefox (#3861)
|
3278
|
+
if ( delegateCount && !(event.button && event.type === "click") ) {
|
3207
3279
|
|
3208
3280
|
// Pregenerate a single jQuery object for reuse with .is()
|
3209
3281
|
jqcur = jQuery(this);
|
3210
3282
|
jqcur.context = this.ownerDocument || this;
|
3211
3283
|
|
3212
3284
|
for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
|
3213
|
-
|
3214
|
-
|
3215
|
-
|
3216
|
-
|
3217
|
-
|
3218
|
-
|
3219
|
-
|
3220
|
-
|
3221
|
-
|
3222
|
-
|
3223
|
-
)
|
3285
|
+
|
3286
|
+
// Don't process events on disabled elements (#6911, #8165)
|
3287
|
+
if ( cur.disabled !== true ) {
|
3288
|
+
selMatch = {};
|
3289
|
+
matches = [];
|
3290
|
+
jqcur[0] = cur;
|
3291
|
+
for ( i = 0; i < delegateCount; i++ ) {
|
3292
|
+
handleObj = handlers[ i ];
|
3293
|
+
sel = handleObj.selector;
|
3294
|
+
|
3295
|
+
if ( selMatch[ sel ] === undefined ) {
|
3296
|
+
selMatch[ sel ] = (
|
3297
|
+
handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )
|
3298
|
+
);
|
3299
|
+
}
|
3300
|
+
if ( selMatch[ sel ] ) {
|
3301
|
+
matches.push( handleObj );
|
3302
|
+
}
|
3224
3303
|
}
|
3225
|
-
if (
|
3226
|
-
|
3304
|
+
if ( matches.length ) {
|
3305
|
+
handlerQueue.push({ elem: cur, matches: matches });
|
3227
3306
|
}
|
3228
3307
|
}
|
3229
|
-
if ( matches.length ) {
|
3230
|
-
handlerQueue.push({ elem: cur, matches: matches });
|
3231
|
-
}
|
3232
3308
|
}
|
3233
3309
|
}
|
3234
3310
|
|
@@ -3266,6 +3342,11 @@ jQuery.event = {
|
|
3266
3342
|
}
|
3267
3343
|
}
|
3268
3344
|
|
3345
|
+
// Call the postDispatch hook for the mapped type
|
3346
|
+
if ( special.postDispatch ) {
|
3347
|
+
special.postDispatch.call( this, event );
|
3348
|
+
}
|
3349
|
+
|
3269
3350
|
return event.result;
|
3270
3351
|
},
|
3271
3352
|
|
@@ -3557,16 +3638,23 @@ if ( !jQuery.support.submitBubbles ) {
|
|
3557
3638
|
form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
|
3558
3639
|
if ( form && !form._submit_attached ) {
|
3559
3640
|
jQuery.event.add( form, "submit._submit", function( event ) {
|
3560
|
-
|
3561
|
-
if ( this.parentNode && !event.isTrigger ) {
|
3562
|
-
jQuery.event.simulate( "submit", this.parentNode, event, true );
|
3563
|
-
}
|
3641
|
+
event._submit_bubble = true;
|
3564
3642
|
});
|
3565
3643
|
form._submit_attached = true;
|
3566
3644
|
}
|
3567
3645
|
});
|
3568
3646
|
// return undefined since we don't need an event listener
|
3569
3647
|
},
|
3648
|
+
|
3649
|
+
postDispatch: function( event ) {
|
3650
|
+
// If form was submitted by the user, bubble the event up the tree
|
3651
|
+
if ( event._submit_bubble ) {
|
3652
|
+
delete event._submit_bubble;
|
3653
|
+
if ( this.parentNode && !event.isTrigger ) {
|
3654
|
+
jQuery.event.simulate( "submit", this.parentNode, event, true );
|
3655
|
+
}
|
3656
|
+
}
|
3657
|
+
},
|
3570
3658
|
|
3571
3659
|
teardown: function() {
|
3572
3660
|
// Only need this for delegated form submit events
|
@@ -3671,9 +3759,9 @@ jQuery.fn.extend({
|
|
3671
3759
|
// Types can be a map of types/handlers
|
3672
3760
|
if ( typeof types === "object" ) {
|
3673
3761
|
// ( types-Object, selector, data )
|
3674
|
-
if ( typeof selector !== "string" ) {
|
3762
|
+
if ( typeof selector !== "string" ) { // && selector != null
|
3675
3763
|
// ( types-Object, data )
|
3676
|
-
data = selector;
|
3764
|
+
data = data || selector;
|
3677
3765
|
selector = undefined;
|
3678
3766
|
}
|
3679
3767
|
for ( type in types ) {
|
@@ -3719,14 +3807,14 @@ jQuery.fn.extend({
|
|
3719
3807
|
});
|
3720
3808
|
},
|
3721
3809
|
one: function( types, selector, data, fn ) {
|
3722
|
-
return this.on
|
3810
|
+
return this.on( types, selector, data, fn, 1 );
|
3723
3811
|
},
|
3724
3812
|
off: function( types, selector, fn ) {
|
3725
3813
|
if ( types && types.preventDefault && types.handleObj ) {
|
3726
3814
|
// ( event ) dispatched jQuery.Event
|
3727
3815
|
var handleObj = types.handleObj;
|
3728
3816
|
jQuery( types.delegateTarget ).off(
|
3729
|
-
handleObj.namespace? handleObj.
|
3817
|
+
handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
|
3730
3818
|
handleObj.selector,
|
3731
3819
|
handleObj.handler
|
3732
3820
|
);
|
@@ -3885,7 +3973,7 @@ var Sizzle = function( selector, context, results, seed ) {
|
|
3885
3973
|
if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
|
3886
3974
|
return [];
|
3887
3975
|
}
|
3888
|
-
|
3976
|
+
|
3889
3977
|
if ( !selector || typeof selector !== "string" ) {
|
3890
3978
|
return results;
|
3891
3979
|
}
|
@@ -3895,7 +3983,7 @@ var Sizzle = function( selector, context, results, seed ) {
|
|
3895
3983
|
contextXML = Sizzle.isXML( context ),
|
3896
3984
|
parts = [],
|
3897
3985
|
soFar = selector;
|
3898
|
-
|
3986
|
+
|
3899
3987
|
// Reset the position of the chunker regexp (start from head)
|
3900
3988
|
do {
|
3901
3989
|
chunker.exec( "" );
|
@@ -3903,9 +3991,9 @@ var Sizzle = function( selector, context, results, seed ) {
|
|
3903
3991
|
|
3904
3992
|
if ( m ) {
|
3905
3993
|
soFar = m[3];
|
3906
|
-
|
3994
|
+
|
3907
3995
|
parts.push( m[1] );
|
3908
|
-
|
3996
|
+
|
3909
3997
|
if ( m[2] ) {
|
3910
3998
|
extra = m[3];
|
3911
3999
|
break;
|
@@ -3929,7 +4017,7 @@ var Sizzle = function( selector, context, results, seed ) {
|
|
3929
4017
|
if ( Expr.relative[ selector ] ) {
|
3930
4018
|
selector += parts.shift();
|
3931
4019
|
}
|
3932
|
-
|
4020
|
+
|
3933
4021
|
set = posProcess( selector, set, seed );
|
3934
4022
|
}
|
3935
4023
|
}
|
@@ -4057,7 +4145,7 @@ Sizzle.find = function( expr, context, isXML ) {
|
|
4057
4145
|
|
4058
4146
|
for ( i = 0, len = Expr.order.length; i < len; i++ ) {
|
4059
4147
|
type = Expr.order[i];
|
4060
|
-
|
4148
|
+
|
4061
4149
|
if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
|
4062
4150
|
left = match[1];
|
4063
4151
|
match.splice( 1, 1 );
|
@@ -4189,7 +4277,7 @@ var getText = Sizzle.getText = function( elem ) {
|
|
4189
4277
|
ret = "";
|
4190
4278
|
|
4191
4279
|
if ( nodeType ) {
|
4192
|
-
if ( nodeType === 1 || nodeType === 9 ) {
|
4280
|
+
if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
|
4193
4281
|
// Use textContent || innerText for elements
|
4194
4282
|
if ( typeof elem.textContent === 'string' ) {
|
4195
4283
|
return elem.textContent;
|
@@ -4429,7 +4517,7 @@ var Expr = Sizzle.selectors = {
|
|
4429
4517
|
|
4430
4518
|
ATTR: function( match, curLoop, inplace, result, not, isXML ) {
|
4431
4519
|
var name = match[1] = match[1].replace( rBackslash, "" );
|
4432
|
-
|
4520
|
+
|
4433
4521
|
if ( !isXML && Expr.attrMap[name] ) {
|
4434
4522
|
match[1] = Expr.attrMap[name];
|
4435
4523
|
}
|
@@ -4463,7 +4551,7 @@ var Expr = Sizzle.selectors = {
|
|
4463
4551
|
} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
|
4464
4552
|
return true;
|
4465
4553
|
}
|
4466
|
-
|
4554
|
+
|
4467
4555
|
return match;
|
4468
4556
|
},
|
4469
4557
|
|
@@ -4473,7 +4561,7 @@ var Expr = Sizzle.selectors = {
|
|
4473
4561
|
return match;
|
4474
4562
|
}
|
4475
4563
|
},
|
4476
|
-
|
4564
|
+
|
4477
4565
|
filters: {
|
4478
4566
|
enabled: function( elem ) {
|
4479
4567
|
return elem.disabled === false && elem.type !== "hidden";
|
@@ -4486,14 +4574,14 @@ var Expr = Sizzle.selectors = {
|
|
4486
4574
|
checked: function( elem ) {
|
4487
4575
|
return elem.checked === true;
|
4488
4576
|
},
|
4489
|
-
|
4577
|
+
|
4490
4578
|
selected: function( elem ) {
|
4491
4579
|
// Accessing this property makes selected-by-default
|
4492
4580
|
// options in Safari work properly
|
4493
4581
|
if ( elem.parentNode ) {
|
4494
4582
|
elem.parentNode.selectedIndex;
|
4495
4583
|
}
|
4496
|
-
|
4584
|
+
|
4497
4585
|
return elem.selected === true;
|
4498
4586
|
},
|
4499
4587
|
|
@@ -4515,7 +4603,7 @@ var Expr = Sizzle.selectors = {
|
|
4515
4603
|
|
4516
4604
|
text: function( elem ) {
|
4517
4605
|
var attr = elem.getAttribute( "type" ), type = elem.type;
|
4518
|
-
// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
|
4606
|
+
// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
|
4519
4607
|
// use getAttribute instead to test this case
|
4520
4608
|
return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
|
4521
4609
|
},
|
@@ -4633,22 +4721,23 @@ var Expr = Sizzle.selectors = {
|
|
4633
4721
|
switch ( type ) {
|
4634
4722
|
case "only":
|
4635
4723
|
case "first":
|
4636
|
-
while ( (node = node.previousSibling) )
|
4637
|
-
if ( node.nodeType === 1 ) {
|
4638
|
-
return false;
|
4724
|
+
while ( (node = node.previousSibling) ) {
|
4725
|
+
if ( node.nodeType === 1 ) {
|
4726
|
+
return false;
|
4639
4727
|
}
|
4640
4728
|
}
|
4641
4729
|
|
4642
|
-
if ( type === "first" ) {
|
4643
|
-
return true;
|
4730
|
+
if ( type === "first" ) {
|
4731
|
+
return true;
|
4644
4732
|
}
|
4645
4733
|
|
4646
4734
|
node = elem;
|
4647
4735
|
|
4736
|
+
/* falls through */
|
4648
4737
|
case "last":
|
4649
|
-
while ( (node = node.nextSibling) )
|
4650
|
-
if ( node.nodeType === 1 ) {
|
4651
|
-
return false;
|
4738
|
+
while ( (node = node.nextSibling) ) {
|
4739
|
+
if ( node.nodeType === 1 ) {
|
4740
|
+
return false;
|
4652
4741
|
}
|
4653
4742
|
}
|
4654
4743
|
|
@@ -4661,22 +4750,22 @@ var Expr = Sizzle.selectors = {
|
|
4661
4750
|
if ( first === 1 && last === 0 ) {
|
4662
4751
|
return true;
|
4663
4752
|
}
|
4664
|
-
|
4753
|
+
|
4665
4754
|
doneName = match[0];
|
4666
4755
|
parent = elem.parentNode;
|
4667
|
-
|
4756
|
+
|
4668
4757
|
if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
|
4669
4758
|
count = 0;
|
4670
|
-
|
4759
|
+
|
4671
4760
|
for ( node = parent.firstChild; node; node = node.nextSibling ) {
|
4672
4761
|
if ( node.nodeType === 1 ) {
|
4673
4762
|
node.nodeIndex = ++count;
|
4674
4763
|
}
|
4675
|
-
}
|
4764
|
+
}
|
4676
4765
|
|
4677
4766
|
parent[ expando ] = doneName;
|
4678
4767
|
}
|
4679
|
-
|
4768
|
+
|
4680
4769
|
diff = elem.nodeIndex - last;
|
4681
4770
|
|
4682
4771
|
if ( first === 0 ) {
|
@@ -4695,7 +4784,7 @@ var Expr = Sizzle.selectors = {
|
|
4695
4784
|
TAG: function( elem, match ) {
|
4696
4785
|
return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
|
4697
4786
|
},
|
4698
|
-
|
4787
|
+
|
4699
4788
|
CLASS: function( elem, match ) {
|
4700
4789
|
return (" " + (elem.className || elem.getAttribute("class")) + " ")
|
4701
4790
|
.indexOf( match ) > -1;
|
@@ -4757,6 +4846,9 @@ for ( var type in Expr.match ) {
|
|
4757
4846
|
Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
|
4758
4847
|
Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
|
4759
4848
|
}
|
4849
|
+
// Expose origPOS
|
4850
|
+
// "global" as in regardless of relation to brackets/parens
|
4851
|
+
Expr.match.globalPOS = origPOS;
|
4760
4852
|
|
4761
4853
|
var makeArray = function( array, results ) {
|
4762
4854
|
array = Array.prototype.slice.call( array, 0 );
|
@@ -4765,7 +4857,7 @@ var makeArray = function( array, results ) {
|
|
4765
4857
|
results.push.apply( results, array );
|
4766
4858
|
return results;
|
4767
4859
|
}
|
4768
|
-
|
4860
|
+
|
4769
4861
|
return array;
|
4770
4862
|
};
|
4771
4863
|
|
@@ -4997,7 +5089,7 @@ if ( document.querySelectorAll ) {
|
|
4997
5089
|
if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
|
4998
5090
|
return;
|
4999
5091
|
}
|
5000
|
-
|
5092
|
+
|
5001
5093
|
Sizzle = function( query, context, extra, seed ) {
|
5002
5094
|
context = context || document;
|
5003
5095
|
|
@@ -5006,24 +5098,24 @@ if ( document.querySelectorAll ) {
|
|
5006
5098
|
if ( !seed && !Sizzle.isXML(context) ) {
|
5007
5099
|
// See if we find a selector to speed up
|
5008
5100
|
var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
|
5009
|
-
|
5101
|
+
|
5010
5102
|
if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
|
5011
5103
|
// Speed-up: Sizzle("TAG")
|
5012
5104
|
if ( match[1] ) {
|
5013
5105
|
return makeArray( context.getElementsByTagName( query ), extra );
|
5014
|
-
|
5106
|
+
|
5015
5107
|
// Speed-up: Sizzle(".CLASS")
|
5016
5108
|
} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
|
5017
5109
|
return makeArray( context.getElementsByClassName( match[2] ), extra );
|
5018
5110
|
}
|
5019
5111
|
}
|
5020
|
-
|
5112
|
+
|
5021
5113
|
if ( context.nodeType === 9 ) {
|
5022
5114
|
// Speed-up: Sizzle("body")
|
5023
5115
|
// The body element only exists once, optimize finding it
|
5024
5116
|
if ( query === "body" && context.body ) {
|
5025
5117
|
return makeArray( [ context.body ], extra );
|
5026
|
-
|
5118
|
+
|
5027
5119
|
// Speed-up: Sizzle("#ID")
|
5028
5120
|
} else if ( match && match[3] ) {
|
5029
5121
|
var elem = context.getElementById( match[3] );
|
@@ -5036,12 +5128,12 @@ if ( document.querySelectorAll ) {
|
|
5036
5128
|
if ( elem.id === match[3] ) {
|
5037
5129
|
return makeArray( [ elem ], extra );
|
5038
5130
|
}
|
5039
|
-
|
5131
|
+
|
5040
5132
|
} else {
|
5041
5133
|
return makeArray( [], extra );
|
5042
5134
|
}
|
5043
5135
|
}
|
5044
|
-
|
5136
|
+
|
5045
5137
|
try {
|
5046
5138
|
return makeArray( context.querySelectorAll(query), extra );
|
5047
5139
|
} catch(qsaError) {}
|
@@ -5079,7 +5171,7 @@ if ( document.querySelectorAll ) {
|
|
5079
5171
|
}
|
5080
5172
|
}
|
5081
5173
|
}
|
5082
|
-
|
5174
|
+
|
5083
5175
|
return oldSizzle(query, context, extra, seed);
|
5084
5176
|
};
|
5085
5177
|
|
@@ -5106,7 +5198,7 @@ if ( document.querySelectorAll ) {
|
|
5106
5198
|
// This should fail with an exception
|
5107
5199
|
// Gecko does not error, returns false instead
|
5108
5200
|
matches.call( document.documentElement, "[test!='']:sizzle" );
|
5109
|
-
|
5201
|
+
|
5110
5202
|
} catch( pseudoError ) {
|
5111
5203
|
pseudoWorks = true;
|
5112
5204
|
}
|
@@ -5116,7 +5208,7 @@ if ( document.querySelectorAll ) {
|
|
5116
5208
|
expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
|
5117
5209
|
|
5118
5210
|
if ( !Sizzle.isXML( node ) ) {
|
5119
|
-
try {
|
5211
|
+
try {
|
5120
5212
|
if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
|
5121
5213
|
var ret = matches.call( node, expr );
|
5122
5214
|
|
@@ -5153,7 +5245,7 @@ if ( document.querySelectorAll ) {
|
|
5153
5245
|
if ( div.getElementsByClassName("e").length === 1 ) {
|
5154
5246
|
return;
|
5155
5247
|
}
|
5156
|
-
|
5248
|
+
|
5157
5249
|
Expr.order.splice(1, 0, "CLASS");
|
5158
5250
|
Expr.find.CLASS = function( match, context, isXML ) {
|
5159
5251
|
if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
|
@@ -5204,7 +5296,7 @@ function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
|
|
5204
5296
|
|
5205
5297
|
if ( elem ) {
|
5206
5298
|
var match = false;
|
5207
|
-
|
5299
|
+
|
5208
5300
|
elem = elem[dir];
|
5209
5301
|
|
5210
5302
|
while ( elem ) {
|
@@ -5257,7 +5349,7 @@ if ( document.documentElement.contains ) {
|
|
5257
5349
|
|
5258
5350
|
Sizzle.isXML = function( elem ) {
|
5259
5351
|
// documentElement is verified for cases where it doesn't yet exist
|
5260
|
-
// (such as loading iframes in IE - #4833)
|
5352
|
+
// (such as loading iframes in IE - #4833)
|
5261
5353
|
var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
|
5262
5354
|
|
5263
5355
|
return documentElement ? documentElement.nodeName !== "HTML" : false;
|
@@ -5307,7 +5399,7 @@ var runtil = /Until$/,
|
|
5307
5399
|
rmultiselector = /,/,
|
5308
5400
|
isSimple = /^.[^:#\[\.,]*$/,
|
5309
5401
|
slice = Array.prototype.slice,
|
5310
|
-
POS = jQuery.expr.match.
|
5402
|
+
POS = jQuery.expr.match.globalPOS,
|
5311
5403
|
// methods guaranteed to produce a unique set when starting from a unique set
|
5312
5404
|
guaranteedUnique = {
|
5313
5405
|
children: true,
|
@@ -5374,11 +5466,11 @@ jQuery.fn.extend({
|
|
5374
5466
|
},
|
5375
5467
|
|
5376
5468
|
is: function( selector ) {
|
5377
|
-
return !!selector && (
|
5469
|
+
return !!selector && (
|
5378
5470
|
typeof selector === "string" ?
|
5379
5471
|
// If this is a positional selector, check membership in the returned set
|
5380
5472
|
// so $("p:first").is("p:last") won't return true for a doc with two "p".
|
5381
|
-
POS.test( selector ) ?
|
5473
|
+
POS.test( selector ) ?
|
5382
5474
|
jQuery( selector, this.context ).index( this[0] ) >= 0 :
|
5383
5475
|
jQuery.filter( selector, this ).length > 0 :
|
5384
5476
|
this.filter( selector ).length > 0 );
|
@@ -5386,7 +5478,7 @@ jQuery.fn.extend({
|
|
5386
5478
|
|
5387
5479
|
closest: function( selectors, context ) {
|
5388
5480
|
var ret = [], i, l, cur = this[0];
|
5389
|
-
|
5481
|
+
|
5390
5482
|
// Array (deprecated as of jQuery 1.7)
|
5391
5483
|
if ( jQuery.isArray( selectors ) ) {
|
5392
5484
|
var level = 1;
|
@@ -5505,7 +5597,7 @@ jQuery.each({
|
|
5505
5597
|
return jQuery.dir( elem, "previousSibling", until );
|
5506
5598
|
},
|
5507
5599
|
siblings: function( elem ) {
|
5508
|
-
return jQuery.sibling( elem.parentNode.firstChild, elem );
|
5600
|
+
return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
|
5509
5601
|
},
|
5510
5602
|
children: function( elem ) {
|
5511
5603
|
return jQuery.sibling( elem.firstChild );
|
@@ -5639,7 +5731,7 @@ function createSafeFragment( document ) {
|
|
5639
5731
|
return safeFrag;
|
5640
5732
|
}
|
5641
5733
|
|
5642
|
-
var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|" +
|
5734
|
+
var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
|
5643
5735
|
"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
|
5644
5736
|
rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
|
5645
5737
|
rleadingWhitespace = /^\s+/,
|
@@ -5649,7 +5741,7 @@ var nodeNames = "abbr|article|aside|audio|canvas|datalist|details|figcaption|fig
|
|
5649
5741
|
rhtml = /<|&#?\w+;/,
|
5650
5742
|
rnoInnerhtml = /<(?:script|style)/i,
|
5651
5743
|
rnocache = /<(?:script|object|embed|option|style)/i,
|
5652
|
-
rnoshimcache = new RegExp("<(?:" + nodeNames + ")", "i"),
|
5744
|
+
rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
|
5653
5745
|
// checked="checked" or checked
|
5654
5746
|
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
|
5655
5747
|
rscriptType = /\/(java|ecma)script/i,
|
@@ -5676,20 +5768,12 @@ if ( !jQuery.support.htmlSerialize ) {
|
|
5676
5768
|
}
|
5677
5769
|
|
5678
5770
|
jQuery.fn.extend({
|
5679
|
-
text: function(
|
5680
|
-
|
5681
|
-
return
|
5682
|
-
|
5683
|
-
|
5684
|
-
|
5685
|
-
});
|
5686
|
-
}
|
5687
|
-
|
5688
|
-
if ( typeof text !== "object" && text !== undefined ) {
|
5689
|
-
return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
|
5690
|
-
}
|
5691
|
-
|
5692
|
-
return jQuery.text( this );
|
5771
|
+
text: function( value ) {
|
5772
|
+
return jQuery.access( this, function( value ) {
|
5773
|
+
return value === undefined ?
|
5774
|
+
jQuery.text( this ) :
|
5775
|
+
this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
|
5776
|
+
}, null, value, arguments.length );
|
5693
5777
|
},
|
5694
5778
|
|
5695
5779
|
wrapAll: function( html ) {
|
@@ -5841,44 +5925,44 @@ jQuery.fn.extend({
|
|
5841
5925
|
},
|
5842
5926
|
|
5843
5927
|
html: function( value ) {
|
5844
|
-
|
5845
|
-
|
5846
|
-
|
5847
|
-
|
5928
|
+
return jQuery.access( this, function( value ) {
|
5929
|
+
var elem = this[0] || {},
|
5930
|
+
i = 0,
|
5931
|
+
l = this.length;
|
5848
5932
|
|
5849
|
-
|
5850
|
-
|
5851
|
-
|
5852
|
-
|
5933
|
+
if ( value === undefined ) {
|
5934
|
+
return elem.nodeType === 1 ?
|
5935
|
+
elem.innerHTML.replace( rinlinejQuery, "" ) :
|
5936
|
+
null;
|
5937
|
+
}
|
5853
5938
|
|
5854
|
-
value = value.replace(rxhtmlTag, "<$1></$2>");
|
5855
5939
|
|
5856
|
-
|
5857
|
-
|
5858
|
-
|
5859
|
-
if ( this[i].nodeType === 1 ) {
|
5860
|
-
jQuery.cleanData( this[i].getElementsByTagName("*") );
|
5861
|
-
this[i].innerHTML = value;
|
5862
|
-
}
|
5863
|
-
}
|
5940
|
+
if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
|
5941
|
+
( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
|
5942
|
+
!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
|
5864
5943
|
|
5865
|
-
|
5866
|
-
} catch(e) {
|
5867
|
-
this.empty().append( value );
|
5868
|
-
}
|
5944
|
+
value = value.replace( rxhtmlTag, "<$1></$2>" );
|
5869
5945
|
|
5870
|
-
|
5871
|
-
|
5872
|
-
|
5946
|
+
try {
|
5947
|
+
for (; i < l; i++ ) {
|
5948
|
+
// Remove element nodes and prevent memory leaks
|
5949
|
+
elem = this[i] || {};
|
5950
|
+
if ( elem.nodeType === 1 ) {
|
5951
|
+
jQuery.cleanData( elem.getElementsByTagName( "*" ) );
|
5952
|
+
elem.innerHTML = value;
|
5953
|
+
}
|
5954
|
+
}
|
5873
5955
|
|
5874
|
-
|
5875
|
-
});
|
5956
|
+
elem = 0;
|
5876
5957
|
|
5877
|
-
|
5878
|
-
|
5879
|
-
|
5958
|
+
// If using innerHTML throws an exception, use the fallback method
|
5959
|
+
} catch(e) {}
|
5960
|
+
}
|
5880
5961
|
|
5881
|
-
|
5962
|
+
if ( elem ) {
|
5963
|
+
this.empty().append( value );
|
5964
|
+
}
|
5965
|
+
}, null, value, arguments.length );
|
5882
5966
|
},
|
5883
5967
|
|
5884
5968
|
replaceWith: function( value ) {
|
@@ -5981,7 +6065,23 @@ jQuery.fn.extend({
|
|
5981
6065
|
}
|
5982
6066
|
|
5983
6067
|
if ( scripts.length ) {
|
5984
|
-
jQuery.each( scripts,
|
6068
|
+
jQuery.each( scripts, function( i, elem ) {
|
6069
|
+
if ( elem.src ) {
|
6070
|
+
jQuery.ajax({
|
6071
|
+
type: "GET",
|
6072
|
+
global: false,
|
6073
|
+
url: elem.src,
|
6074
|
+
async: false,
|
6075
|
+
dataType: "script"
|
6076
|
+
});
|
6077
|
+
} else {
|
6078
|
+
jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
|
6079
|
+
}
|
6080
|
+
|
6081
|
+
if ( elem.parentNode ) {
|
6082
|
+
elem.parentNode.removeChild( elem );
|
6083
|
+
}
|
6084
|
+
});
|
5985
6085
|
}
|
5986
6086
|
}
|
5987
6087
|
|
@@ -6013,7 +6113,7 @@ function cloneCopyEvent( src, dest ) {
|
|
6013
6113
|
|
6014
6114
|
for ( type in events ) {
|
6015
6115
|
for ( i = 0, l = events[ type ].length; i < l; i++ ) {
|
6016
|
-
jQuery.event.add( dest, type
|
6116
|
+
jQuery.event.add( dest, type, events[ type ][ i ] );
|
6017
6117
|
}
|
6018
6118
|
}
|
6019
6119
|
}
|
@@ -6075,11 +6175,20 @@ function cloneFixAttributes( src, dest ) {
|
|
6075
6175
|
// cloning other types of input fields
|
6076
6176
|
} else if ( nodeName === "input" || nodeName === "textarea" ) {
|
6077
6177
|
dest.defaultValue = src.defaultValue;
|
6178
|
+
|
6179
|
+
// IE blanks contents when cloning scripts
|
6180
|
+
} else if ( nodeName === "script" && dest.text !== src.text ) {
|
6181
|
+
dest.text = src.text;
|
6078
6182
|
}
|
6079
6183
|
|
6080
6184
|
// Event data gets referenced instead of copied if the expando
|
6081
6185
|
// gets copied too
|
6082
6186
|
dest.removeAttribute( jQuery.expando );
|
6187
|
+
|
6188
|
+
// Clear flags for bubbling special change/submit events, they must
|
6189
|
+
// be reattached when the newly cloned events are first activated
|
6190
|
+
dest.removeAttribute( "_submit_attached" );
|
6191
|
+
dest.removeAttribute( "_change_attached" );
|
6083
6192
|
}
|
6084
6193
|
|
6085
6194
|
jQuery.buildFragment = function( args, nodes, scripts ) {
|
@@ -6204,7 +6313,7 @@ jQuery.extend({
|
|
6204
6313
|
destElements,
|
6205
6314
|
i,
|
6206
6315
|
// IE<=8 does not properly clone detached, unknown element nodes
|
6207
|
-
clone = jQuery.support.html5Clone || !rnoshimcache.test( "<" + elem.nodeName ) ?
|
6316
|
+
clone = jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ?
|
6208
6317
|
elem.cloneNode( true ) :
|
6209
6318
|
shimCloneNode( elem );
|
6210
6319
|
|
@@ -6254,7 +6363,8 @@ jQuery.extend({
|
|
6254
6363
|
},
|
6255
6364
|
|
6256
6365
|
clean: function( elems, context, fragment, scripts ) {
|
6257
|
-
var checkScriptType
|
6366
|
+
var checkScriptType, script, j,
|
6367
|
+
ret = [];
|
6258
6368
|
|
6259
6369
|
context = context || document;
|
6260
6370
|
|
@@ -6263,8 +6373,6 @@ jQuery.extend({
|
|
6263
6373
|
context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
|
6264
6374
|
}
|
6265
6375
|
|
6266
|
-
var ret = [], j;
|
6267
|
-
|
6268
6376
|
for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
|
6269
6377
|
if ( typeof elem === "number" ) {
|
6270
6378
|
elem += "";
|
@@ -6286,7 +6394,9 @@ jQuery.extend({
|
|
6286
6394
|
var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
|
6287
6395
|
wrap = wrapMap[ tag ] || wrapMap._default,
|
6288
6396
|
depth = wrap[0],
|
6289
|
-
div = context.createElement("div")
|
6397
|
+
div = context.createElement("div"),
|
6398
|
+
safeChildNodes = safeFragment.childNodes,
|
6399
|
+
remove;
|
6290
6400
|
|
6291
6401
|
// Append wrapper element to unknown element safe doc fragment
|
6292
6402
|
if ( context === document ) {
|
@@ -6331,6 +6441,21 @@ jQuery.extend({
|
|
6331
6441
|
}
|
6332
6442
|
|
6333
6443
|
elem = div.childNodes;
|
6444
|
+
|
6445
|
+
// Clear elements from DocumentFragment (safeFragment or otherwise)
|
6446
|
+
// to avoid hoarding elements. Fixes #11356
|
6447
|
+
if ( div ) {
|
6448
|
+
div.parentNode.removeChild( div );
|
6449
|
+
|
6450
|
+
// Guard against -1 index exceptions in FF3.6
|
6451
|
+
if ( safeChildNodes.length > 0 ) {
|
6452
|
+
remove = safeChildNodes[ safeChildNodes.length - 1 ];
|
6453
|
+
|
6454
|
+
if ( remove && remove.parentNode ) {
|
6455
|
+
remove.parentNode.removeChild( remove );
|
6456
|
+
}
|
6457
|
+
}
|
6458
|
+
}
|
6334
6459
|
}
|
6335
6460
|
}
|
6336
6461
|
|
@@ -6359,16 +6484,17 @@ jQuery.extend({
|
|
6359
6484
|
return !elem.type || rscriptType.test( elem.type );
|
6360
6485
|
};
|
6361
6486
|
for ( i = 0; ret[i]; i++ ) {
|
6362
|
-
|
6363
|
-
|
6487
|
+
script = ret[i];
|
6488
|
+
if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) {
|
6489
|
+
scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script );
|
6364
6490
|
|
6365
6491
|
} else {
|
6366
|
-
if (
|
6367
|
-
var jsTags = jQuery.grep(
|
6492
|
+
if ( script.nodeType === 1 ) {
|
6493
|
+
var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType );
|
6368
6494
|
|
6369
6495
|
ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
|
6370
6496
|
}
|
6371
|
-
fragment.appendChild(
|
6497
|
+
fragment.appendChild( script );
|
6372
6498
|
}
|
6373
6499
|
}
|
6374
6500
|
}
|
@@ -6422,22 +6548,6 @@ jQuery.extend({
|
|
6422
6548
|
}
|
6423
6549
|
});
|
6424
6550
|
|
6425
|
-
function evalScript( i, elem ) {
|
6426
|
-
if ( elem.src ) {
|
6427
|
-
jQuery.ajax({
|
6428
|
-
url: elem.src,
|
6429
|
-
async: false,
|
6430
|
-
dataType: "script"
|
6431
|
-
});
|
6432
|
-
} else {
|
6433
|
-
jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
|
6434
|
-
}
|
6435
|
-
|
6436
|
-
if ( elem.parentNode ) {
|
6437
|
-
elem.parentNode.removeChild( elem );
|
6438
|
-
}
|
6439
|
-
}
|
6440
|
-
|
6441
6551
|
|
6442
6552
|
|
6443
6553
|
|
@@ -6445,29 +6555,27 @@ var ralpha = /alpha\([^)]*\)/i,
|
|
6445
6555
|
ropacity = /opacity=([^)]*)/,
|
6446
6556
|
// fixed for IE9, see #8346
|
6447
6557
|
rupper = /([A-Z]|^ms)/g,
|
6448
|
-
|
6449
|
-
|
6558
|
+
rnum = /^[\-+]?(?:\d*\.)?\d+$/i,
|
6559
|
+
rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,
|
6450
6560
|
rrelNum = /^([\-+])=([\-+.\de]+)/,
|
6561
|
+
rmargin = /^margin/,
|
6451
6562
|
|
6452
6563
|
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
6453
|
-
|
6454
|
-
|
6564
|
+
|
6565
|
+
// order is important!
|
6566
|
+
cssExpand = [ "Top", "Right", "Bottom", "Left" ],
|
6567
|
+
|
6455
6568
|
curCSS,
|
6456
6569
|
|
6457
6570
|
getComputedStyle,
|
6458
6571
|
currentStyle;
|
6459
6572
|
|
6460
6573
|
jQuery.fn.css = function( name, value ) {
|
6461
|
-
|
6462
|
-
if ( arguments.length === 2 && value === undefined ) {
|
6463
|
-
return this;
|
6464
|
-
}
|
6465
|
-
|
6466
|
-
return jQuery.access( this, name, value, true, function( elem, name, value ) {
|
6574
|
+
return jQuery.access( this, function( elem, name, value ) {
|
6467
6575
|
return value !== undefined ?
|
6468
6576
|
jQuery.style( elem, name, value ) :
|
6469
6577
|
jQuery.css( elem, name );
|
6470
|
-
});
|
6578
|
+
}, name, value, arguments.length > 1 );
|
6471
6579
|
};
|
6472
6580
|
|
6473
6581
|
jQuery.extend({
|
@@ -6478,7 +6586,7 @@ jQuery.extend({
|
|
6478
6586
|
get: function( elem, computed ) {
|
6479
6587
|
if ( computed ) {
|
6480
6588
|
// We should always get a number back from opacity
|
6481
|
-
var ret = curCSS( elem, "opacity"
|
6589
|
+
var ret = curCSS( elem, "opacity" );
|
6482
6590
|
return ret === "" ? "1" : ret;
|
6483
6591
|
|
6484
6592
|
} else {
|
@@ -6586,137 +6694,55 @@ jQuery.extend({
|
|
6586
6694
|
|
6587
6695
|
// A method for quickly swapping in/out CSS properties to get correct calculations
|
6588
6696
|
swap: function( elem, options, callback ) {
|
6589
|
-
var old = {}
|
6697
|
+
var old = {},
|
6698
|
+
ret, name;
|
6590
6699
|
|
6591
6700
|
// Remember the old values, and insert the new ones
|
6592
|
-
for (
|
6701
|
+
for ( name in options ) {
|
6593
6702
|
old[ name ] = elem.style[ name ];
|
6594
6703
|
elem.style[ name ] = options[ name ];
|
6595
6704
|
}
|
6596
6705
|
|
6597
|
-
callback.call( elem );
|
6706
|
+
ret = callback.call( elem );
|
6598
6707
|
|
6599
6708
|
// Revert the old values
|
6600
6709
|
for ( name in options ) {
|
6601
6710
|
elem.style[ name ] = old[ name ];
|
6602
6711
|
}
|
6712
|
+
|
6713
|
+
return ret;
|
6603
6714
|
}
|
6604
6715
|
});
|
6605
6716
|
|
6606
|
-
// DEPRECATED, Use jQuery.css() instead
|
6717
|
+
// DEPRECATED in 1.3, Use jQuery.css() instead
|
6607
6718
|
jQuery.curCSS = jQuery.css;
|
6608
6719
|
|
6609
|
-
jQuery.each(["height", "width"], function( i, name ) {
|
6610
|
-
jQuery.cssHooks[ name ] = {
|
6611
|
-
get: function( elem, computed, extra ) {
|
6612
|
-
var val;
|
6613
|
-
|
6614
|
-
if ( computed ) {
|
6615
|
-
if ( elem.offsetWidth !== 0 ) {
|
6616
|
-
return getWH( elem, name, extra );
|
6617
|
-
} else {
|
6618
|
-
jQuery.swap( elem, cssShow, function() {
|
6619
|
-
val = getWH( elem, name, extra );
|
6620
|
-
});
|
6621
|
-
}
|
6622
|
-
|
6623
|
-
return val;
|
6624
|
-
}
|
6625
|
-
},
|
6626
|
-
|
6627
|
-
set: function( elem, value ) {
|
6628
|
-
if ( rnumpx.test( value ) ) {
|
6629
|
-
// ignore negative width and height values #1599
|
6630
|
-
value = parseFloat( value );
|
6631
|
-
|
6632
|
-
if ( value >= 0 ) {
|
6633
|
-
return value + "px";
|
6634
|
-
}
|
6635
|
-
|
6636
|
-
} else {
|
6637
|
-
return value;
|
6638
|
-
}
|
6639
|
-
}
|
6640
|
-
};
|
6641
|
-
});
|
6642
|
-
|
6643
|
-
if ( !jQuery.support.opacity ) {
|
6644
|
-
jQuery.cssHooks.opacity = {
|
6645
|
-
get: function( elem, computed ) {
|
6646
|
-
// IE uses filters for opacity
|
6647
|
-
return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
|
6648
|
-
( parseFloat( RegExp.$1 ) / 100 ) + "" :
|
6649
|
-
computed ? "1" : "";
|
6650
|
-
},
|
6651
|
-
|
6652
|
-
set: function( elem, value ) {
|
6653
|
-
var style = elem.style,
|
6654
|
-
currentStyle = elem.currentStyle,
|
6655
|
-
opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
|
6656
|
-
filter = currentStyle && currentStyle.filter || style.filter || "";
|
6657
|
-
|
6658
|
-
// IE has trouble with opacity if it does not have layout
|
6659
|
-
// Force it by setting the zoom level
|
6660
|
-
style.zoom = 1;
|
6661
|
-
|
6662
|
-
// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
|
6663
|
-
if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
|
6664
|
-
|
6665
|
-
// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
|
6666
|
-
// if "filter:" is present at all, clearType is disabled, we want to avoid this
|
6667
|
-
// style.removeAttribute is IE Only, but so apparently is this code path...
|
6668
|
-
style.removeAttribute( "filter" );
|
6669
|
-
|
6670
|
-
// if there there is no filter style applied in a css rule, we are done
|
6671
|
-
if ( currentStyle && !currentStyle.filter ) {
|
6672
|
-
return;
|
6673
|
-
}
|
6674
|
-
}
|
6675
|
-
|
6676
|
-
// otherwise, set new filter values
|
6677
|
-
style.filter = ralpha.test( filter ) ?
|
6678
|
-
filter.replace( ralpha, opacity ) :
|
6679
|
-
filter + " " + opacity;
|
6680
|
-
}
|
6681
|
-
};
|
6682
|
-
}
|
6683
|
-
|
6684
|
-
jQuery(function() {
|
6685
|
-
// This hook cannot be added until DOM ready because the support test
|
6686
|
-
// for it is not run until after DOM ready
|
6687
|
-
if ( !jQuery.support.reliableMarginRight ) {
|
6688
|
-
jQuery.cssHooks.marginRight = {
|
6689
|
-
get: function( elem, computed ) {
|
6690
|
-
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
|
6691
|
-
// Work around by temporarily setting element display to inline-block
|
6692
|
-
var ret;
|
6693
|
-
jQuery.swap( elem, { "display": "inline-block" }, function() {
|
6694
|
-
if ( computed ) {
|
6695
|
-
ret = curCSS( elem, "margin-right", "marginRight" );
|
6696
|
-
} else {
|
6697
|
-
ret = elem.style.marginRight;
|
6698
|
-
}
|
6699
|
-
});
|
6700
|
-
return ret;
|
6701
|
-
}
|
6702
|
-
};
|
6703
|
-
}
|
6704
|
-
});
|
6705
|
-
|
6706
6720
|
if ( document.defaultView && document.defaultView.getComputedStyle ) {
|
6707
6721
|
getComputedStyle = function( elem, name ) {
|
6708
|
-
var ret, defaultView, computedStyle
|
6722
|
+
var ret, defaultView, computedStyle, width,
|
6723
|
+
style = elem.style;
|
6709
6724
|
|
6710
6725
|
name = name.replace( rupper, "-$1" ).toLowerCase();
|
6711
6726
|
|
6712
6727
|
if ( (defaultView = elem.ownerDocument.defaultView) &&
|
6713
6728
|
(computedStyle = defaultView.getComputedStyle( elem, null )) ) {
|
6729
|
+
|
6714
6730
|
ret = computedStyle.getPropertyValue( name );
|
6715
6731
|
if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
|
6716
6732
|
ret = jQuery.style( elem, name );
|
6717
6733
|
}
|
6718
6734
|
}
|
6719
6735
|
|
6736
|
+
// A tribute to the "awesome hack by Dean Edwards"
|
6737
|
+
// WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
|
6738
|
+
// which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
|
6739
|
+
if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
|
6740
|
+
width = style.width;
|
6741
|
+
style.width = ret;
|
6742
|
+
ret = computedStyle.width;
|
6743
|
+
style.width = width;
|
6744
|
+
}
|
6745
|
+
|
6720
6746
|
return ret;
|
6721
6747
|
};
|
6722
6748
|
}
|
@@ -6729,7 +6755,7 @@ if ( document.documentElement.currentStyle ) {
|
|
6729
6755
|
|
6730
6756
|
// Avoid setting ret to empty string here
|
6731
6757
|
// so we don't default to auto
|
6732
|
-
if ( ret
|
6758
|
+
if ( ret == null && style && (uncomputed = style[ name ]) ) {
|
6733
6759
|
ret = uncomputed;
|
6734
6760
|
}
|
6735
6761
|
|
@@ -6738,7 +6764,7 @@ if ( document.documentElement.currentStyle ) {
|
|
6738
6764
|
|
6739
6765
|
// If we're not dealing with a regular pixel number
|
6740
6766
|
// but a number that has a weird ending, we need to convert it to pixels
|
6741
|
-
if (
|
6767
|
+
if ( rnumnonpx.test( ret ) ) {
|
6742
6768
|
|
6743
6769
|
// Remember the original values
|
6744
6770
|
left = style.left;
|
@@ -6748,7 +6774,7 @@ if ( document.documentElement.currentStyle ) {
|
|
6748
6774
|
if ( rsLeft ) {
|
6749
6775
|
elem.runtimeStyle.left = elem.currentStyle.left;
|
6750
6776
|
}
|
6751
|
-
style.left = name === "fontSize" ? "1em" :
|
6777
|
+
style.left = name === "fontSize" ? "1em" : ret;
|
6752
6778
|
ret = style.pixelLeft + "px";
|
6753
6779
|
|
6754
6780
|
// Revert the changed values
|
@@ -6764,24 +6790,23 @@ if ( document.documentElement.currentStyle ) {
|
|
6764
6790
|
|
6765
6791
|
curCSS = getComputedStyle || currentStyle;
|
6766
6792
|
|
6767
|
-
function
|
6793
|
+
function getWidthOrHeight( elem, name, extra ) {
|
6768
6794
|
|
6769
6795
|
// Start with offset property
|
6770
6796
|
var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
|
6771
|
-
|
6772
|
-
|
6773
|
-
len = which.length;
|
6797
|
+
i = name === "width" ? 1 : 0,
|
6798
|
+
len = 4;
|
6774
6799
|
|
6775
6800
|
if ( val > 0 ) {
|
6776
6801
|
if ( extra !== "border" ) {
|
6777
|
-
for ( ; i < len; i
|
6802
|
+
for ( ; i < len; i += 2 ) {
|
6778
6803
|
if ( !extra ) {
|
6779
|
-
val -= parseFloat( jQuery.css( elem, "padding" +
|
6804
|
+
val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
|
6780
6805
|
}
|
6781
6806
|
if ( extra === "margin" ) {
|
6782
|
-
val += parseFloat( jQuery.css( elem, extra +
|
6807
|
+
val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0;
|
6783
6808
|
} else {
|
6784
|
-
val -= parseFloat( jQuery.css( elem, "border" +
|
6809
|
+
val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
|
6785
6810
|
}
|
6786
6811
|
}
|
6787
6812
|
}
|
@@ -6790,22 +6815,28 @@ function getWH( elem, name, extra ) {
|
|
6790
6815
|
}
|
6791
6816
|
|
6792
6817
|
// Fall back to computed then uncomputed css if necessary
|
6793
|
-
val = curCSS( elem, name
|
6818
|
+
val = curCSS( elem, name );
|
6794
6819
|
if ( val < 0 || val == null ) {
|
6795
|
-
val = elem.style[ name ]
|
6820
|
+
val = elem.style[ name ];
|
6796
6821
|
}
|
6822
|
+
|
6823
|
+
// Computed unit is not pixels. Stop here and return.
|
6824
|
+
if ( rnumnonpx.test(val) ) {
|
6825
|
+
return val;
|
6826
|
+
}
|
6827
|
+
|
6797
6828
|
// Normalize "", auto, and prepare for extra
|
6798
6829
|
val = parseFloat( val ) || 0;
|
6799
6830
|
|
6800
6831
|
// Add padding, border, margin
|
6801
6832
|
if ( extra ) {
|
6802
|
-
for ( ; i < len; i
|
6803
|
-
val += parseFloat( jQuery.css( elem, "padding" +
|
6833
|
+
for ( ; i < len; i += 2 ) {
|
6834
|
+
val += parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
|
6804
6835
|
if ( extra !== "padding" ) {
|
6805
|
-
val += parseFloat( jQuery.css( elem, "border" +
|
6836
|
+
val += parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
|
6806
6837
|
}
|
6807
6838
|
if ( extra === "margin" ) {
|
6808
|
-
val += parseFloat( jQuery.css( elem, extra +
|
6839
|
+
val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ]) ) || 0;
|
6809
6840
|
}
|
6810
6841
|
}
|
6811
6842
|
}
|
@@ -6813,6 +6844,89 @@ function getWH( elem, name, extra ) {
|
|
6813
6844
|
return val + "px";
|
6814
6845
|
}
|
6815
6846
|
|
6847
|
+
jQuery.each([ "height", "width" ], function( i, name ) {
|
6848
|
+
jQuery.cssHooks[ name ] = {
|
6849
|
+
get: function( elem, computed, extra ) {
|
6850
|
+
if ( computed ) {
|
6851
|
+
if ( elem.offsetWidth !== 0 ) {
|
6852
|
+
return getWidthOrHeight( elem, name, extra );
|
6853
|
+
} else {
|
6854
|
+
return jQuery.swap( elem, cssShow, function() {
|
6855
|
+
return getWidthOrHeight( elem, name, extra );
|
6856
|
+
});
|
6857
|
+
}
|
6858
|
+
}
|
6859
|
+
},
|
6860
|
+
|
6861
|
+
set: function( elem, value ) {
|
6862
|
+
return rnum.test( value ) ?
|
6863
|
+
value + "px" :
|
6864
|
+
value;
|
6865
|
+
}
|
6866
|
+
};
|
6867
|
+
});
|
6868
|
+
|
6869
|
+
if ( !jQuery.support.opacity ) {
|
6870
|
+
jQuery.cssHooks.opacity = {
|
6871
|
+
get: function( elem, computed ) {
|
6872
|
+
// IE uses filters for opacity
|
6873
|
+
return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
|
6874
|
+
( parseFloat( RegExp.$1 ) / 100 ) + "" :
|
6875
|
+
computed ? "1" : "";
|
6876
|
+
},
|
6877
|
+
|
6878
|
+
set: function( elem, value ) {
|
6879
|
+
var style = elem.style,
|
6880
|
+
currentStyle = elem.currentStyle,
|
6881
|
+
opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
|
6882
|
+
filter = currentStyle && currentStyle.filter || style.filter || "";
|
6883
|
+
|
6884
|
+
// IE has trouble with opacity if it does not have layout
|
6885
|
+
// Force it by setting the zoom level
|
6886
|
+
style.zoom = 1;
|
6887
|
+
|
6888
|
+
// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
|
6889
|
+
if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
|
6890
|
+
|
6891
|
+
// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
|
6892
|
+
// if "filter:" is present at all, clearType is disabled, we want to avoid this
|
6893
|
+
// style.removeAttribute is IE Only, but so apparently is this code path...
|
6894
|
+
style.removeAttribute( "filter" );
|
6895
|
+
|
6896
|
+
// if there there is no filter style applied in a css rule, we are done
|
6897
|
+
if ( currentStyle && !currentStyle.filter ) {
|
6898
|
+
return;
|
6899
|
+
}
|
6900
|
+
}
|
6901
|
+
|
6902
|
+
// otherwise, set new filter values
|
6903
|
+
style.filter = ralpha.test( filter ) ?
|
6904
|
+
filter.replace( ralpha, opacity ) :
|
6905
|
+
filter + " " + opacity;
|
6906
|
+
}
|
6907
|
+
};
|
6908
|
+
}
|
6909
|
+
|
6910
|
+
jQuery(function() {
|
6911
|
+
// This hook cannot be added until DOM ready because the support test
|
6912
|
+
// for it is not run until after DOM ready
|
6913
|
+
if ( !jQuery.support.reliableMarginRight ) {
|
6914
|
+
jQuery.cssHooks.marginRight = {
|
6915
|
+
get: function( elem, computed ) {
|
6916
|
+
// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
|
6917
|
+
// Work around by temporarily setting element display to inline-block
|
6918
|
+
return jQuery.swap( elem, { "display": "inline-block" }, function() {
|
6919
|
+
if ( computed ) {
|
6920
|
+
return curCSS( elem, "margin-right" );
|
6921
|
+
} else {
|
6922
|
+
return elem.style.marginRight;
|
6923
|
+
}
|
6924
|
+
});
|
6925
|
+
}
|
6926
|
+
};
|
6927
|
+
}
|
6928
|
+
});
|
6929
|
+
|
6816
6930
|
if ( jQuery.expr && jQuery.expr.filters ) {
|
6817
6931
|
jQuery.expr.filters.hidden = function( elem ) {
|
6818
6932
|
var width = elem.offsetWidth,
|
@@ -6826,6 +6940,31 @@ if ( jQuery.expr && jQuery.expr.filters ) {
|
|
6826
6940
|
};
|
6827
6941
|
}
|
6828
6942
|
|
6943
|
+
// These hooks are used by animate to expand properties
|
6944
|
+
jQuery.each({
|
6945
|
+
margin: "",
|
6946
|
+
padding: "",
|
6947
|
+
border: "Width"
|
6948
|
+
}, function( prefix, suffix ) {
|
6949
|
+
|
6950
|
+
jQuery.cssHooks[ prefix + suffix ] = {
|
6951
|
+
expand: function( value ) {
|
6952
|
+
var i,
|
6953
|
+
|
6954
|
+
// assumes a single number if not a string
|
6955
|
+
parts = typeof value === "string" ? value.split(" ") : [ value ],
|
6956
|
+
expanded = {};
|
6957
|
+
|
6958
|
+
for ( i = 0; i < 4; i++ ) {
|
6959
|
+
expanded[ prefix + cssExpand[ i ] + suffix ] =
|
6960
|
+
parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
|
6961
|
+
}
|
6962
|
+
|
6963
|
+
return expanded;
|
6964
|
+
}
|
6965
|
+
};
|
6966
|
+
});
|
6967
|
+
|
6829
6968
|
|
6830
6969
|
|
6831
6970
|
|
@@ -7144,7 +7283,7 @@ jQuery.extend({
|
|
7144
7283
|
isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
|
7145
7284
|
global: true,
|
7146
7285
|
type: "GET",
|
7147
|
-
contentType: "application/x-www-form-urlencoded",
|
7286
|
+
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
|
7148
7287
|
processData: true,
|
7149
7288
|
async: true,
|
7150
7289
|
/*
|
@@ -7470,7 +7609,7 @@ jQuery.extend({
|
|
7470
7609
|
// Apply prefilters
|
7471
7610
|
inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
|
7472
7611
|
|
7473
|
-
// If request was aborted inside a
|
7612
|
+
// If request was aborted inside a prefilter, stop there
|
7474
7613
|
if ( state === 2 ) {
|
7475
7614
|
return false;
|
7476
7615
|
}
|
@@ -7643,11 +7782,11 @@ function buildParams( prefix, obj, traditional, add ) {
|
|
7643
7782
|
// a server error. Possible fixes are to modify rack's
|
7644
7783
|
// deserialization algorithm or to provide an option or flag
|
7645
7784
|
// to force array serialization to be shallow.
|
7646
|
-
buildParams( prefix + "[" + ( typeof v === "object"
|
7785
|
+
buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
|
7647
7786
|
}
|
7648
7787
|
});
|
7649
7788
|
|
7650
|
-
} else if ( !traditional && obj
|
7789
|
+
} else if ( !traditional && jQuery.type( obj ) === "object" ) {
|
7651
7790
|
// Serialize object item.
|
7652
7791
|
for ( var name in obj ) {
|
7653
7792
|
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
|
@@ -7843,8 +7982,7 @@ jQuery.ajaxSetup({
|
|
7843
7982
|
// Detect, normalize options and install callbacks for jsonp requests
|
7844
7983
|
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
7845
7984
|
|
7846
|
-
var inspectData = s.
|
7847
|
-
( typeof s.data === "string" );
|
7985
|
+
var inspectData = ( typeof s.data === "string" ) && /^application\/x\-www\-form\-urlencoded/.test( s.contentType );
|
7848
7986
|
|
7849
7987
|
if ( s.dataTypes[ 0 ] === "jsonp" ||
|
7850
7988
|
s.jsonp !== false && ( jsre.test( s.url ) ||
|
@@ -8145,7 +8283,13 @@ if ( jQuery.support.ajax ) {
|
|
8145
8283
|
if ( xml && xml.documentElement /* #4958 */ ) {
|
8146
8284
|
responses.xml = xml;
|
8147
8285
|
}
|
8148
|
-
|
8286
|
+
|
8287
|
+
// When requesting binary data, IE6-9 will throw an exception
|
8288
|
+
// on any attempt to access responseText (#11426)
|
8289
|
+
try {
|
8290
|
+
responses.text = xhr.responseText;
|
8291
|
+
} catch( _ ) {
|
8292
|
+
}
|
8149
8293
|
|
8150
8294
|
// Firefox throws an exception when accessing
|
8151
8295
|
// statusText for faulty cross-domain requests
|
@@ -8253,7 +8397,8 @@ jQuery.fn.extend({
|
|
8253
8397
|
// Set elements which have been overridden with display: none
|
8254
8398
|
// in a stylesheet to whatever the default browser style is
|
8255
8399
|
// for such an element
|
8256
|
-
if ( display === "" && jQuery.css(elem, "display") === "none"
|
8400
|
+
if ( (display === "" && jQuery.css(elem, "display") === "none") ||
|
8401
|
+
!jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
|
8257
8402
|
jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
|
8258
8403
|
}
|
8259
8404
|
}
|
@@ -8357,24 +8502,37 @@ jQuery.fn.extend({
|
|
8357
8502
|
var opt = jQuery.extend( {}, optall ),
|
8358
8503
|
isElement = this.nodeType === 1,
|
8359
8504
|
hidden = isElement && jQuery(this).is(":hidden"),
|
8360
|
-
name, val, p, e,
|
8505
|
+
name, val, p, e, hooks, replace,
|
8361
8506
|
parts, start, end, unit,
|
8362
8507
|
method;
|
8363
8508
|
|
8364
8509
|
// will store per property easing and be used to determine when an animation is complete
|
8365
8510
|
opt.animatedProperties = {};
|
8366
8511
|
|
8512
|
+
// first pass over propertys to expand / normalize
|
8367
8513
|
for ( p in prop ) {
|
8368
|
-
|
8369
|
-
// property name normalization
|
8370
8514
|
name = jQuery.camelCase( p );
|
8371
8515
|
if ( p !== name ) {
|
8372
8516
|
prop[ name ] = prop[ p ];
|
8373
8517
|
delete prop[ p ];
|
8374
8518
|
}
|
8375
8519
|
|
8376
|
-
|
8520
|
+
if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) {
|
8521
|
+
replace = hooks.expand( prop[ name ] );
|
8522
|
+
delete prop[ name ];
|
8377
8523
|
|
8524
|
+
// not quite $.extend, this wont overwrite keys already present.
|
8525
|
+
// also - reusing 'p' from above because we have the correct "name"
|
8526
|
+
for ( p in replace ) {
|
8527
|
+
if ( ! ( p in prop ) ) {
|
8528
|
+
prop[ p ] = replace[ p ];
|
8529
|
+
}
|
8530
|
+
}
|
8531
|
+
}
|
8532
|
+
}
|
8533
|
+
|
8534
|
+
for ( name in prop ) {
|
8535
|
+
val = prop[ name ];
|
8378
8536
|
// easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
|
8379
8537
|
if ( jQuery.isArray( val ) ) {
|
8380
8538
|
opt.animatedProperties[ name ] = val[ 1 ];
|
@@ -8601,11 +8759,11 @@ jQuery.extend({
|
|
8601
8759
|
},
|
8602
8760
|
|
8603
8761
|
easing: {
|
8604
|
-
linear: function( p
|
8605
|
-
return
|
8762
|
+
linear: function( p ) {
|
8763
|
+
return p;
|
8606
8764
|
},
|
8607
|
-
swing: function( p
|
8608
|
-
return (
|
8765
|
+
swing: function( p ) {
|
8766
|
+
return ( -Math.cos( p*Math.PI ) / 2 ) + 0.5;
|
8609
8767
|
}
|
8610
8768
|
},
|
8611
8769
|
|
@@ -8663,8 +8821,12 @@ jQuery.fx.prototype = {
|
|
8663
8821
|
t.queue = this.options.queue;
|
8664
8822
|
t.elem = this.elem;
|
8665
8823
|
t.saveState = function() {
|
8666
|
-
if (
|
8667
|
-
|
8824
|
+
if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
|
8825
|
+
if ( self.options.hide ) {
|
8826
|
+
jQuery._data( self.elem, "fxshow" + self.prop, self.start );
|
8827
|
+
} else if ( self.options.show ) {
|
8828
|
+
jQuery._data( self.elem, "fxshow" + self.prop, self.end );
|
8829
|
+
}
|
8668
8830
|
}
|
8669
8831
|
};
|
8670
8832
|
|
@@ -8831,12 +8993,14 @@ jQuery.extend( jQuery.fx, {
|
|
8831
8993
|
}
|
8832
8994
|
});
|
8833
8995
|
|
8834
|
-
//
|
8835
|
-
|
8836
|
-
|
8837
|
-
|
8838
|
-
jQuery.
|
8839
|
-
|
8996
|
+
// Ensure props that can't be negative don't go there on undershoot easing
|
8997
|
+
jQuery.each( fxAttrs.concat.apply( [], fxAttrs ), function( i, prop ) {
|
8998
|
+
// exclude marginTop, marginLeft, marginBottom and marginRight from this list
|
8999
|
+
if ( prop.indexOf( "margin" ) ) {
|
9000
|
+
jQuery.fx.step[ prop ] = function( fx ) {
|
9001
|
+
jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit );
|
9002
|
+
};
|
9003
|
+
}
|
8840
9004
|
});
|
8841
9005
|
|
8842
9006
|
if ( jQuery.expr && jQuery.expr.filters ) {
|
@@ -8873,7 +9037,7 @@ function defaultDisplay( nodeName ) {
|
|
8873
9037
|
// document to it; WebKit & Firefox won't allow reusing the iframe document.
|
8874
9038
|
if ( !iframeDoc || !iframe.createElement ) {
|
8875
9039
|
iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
|
8876
|
-
iframeDoc.write( (
|
9040
|
+
iframeDoc.write( ( jQuery.support.boxModel ? "<!doctype html>" : "" ) + "<html><body>" );
|
8877
9041
|
iframeDoc.close();
|
8878
9042
|
}
|
8879
9043
|
|
@@ -8895,41 +9059,23 @@ function defaultDisplay( nodeName ) {
|
|
8895
9059
|
|
8896
9060
|
|
8897
9061
|
|
8898
|
-
var
|
9062
|
+
var getOffset,
|
9063
|
+
rtable = /^t(?:able|d|h)$/i,
|
8899
9064
|
rroot = /^(?:body|html)$/i;
|
8900
9065
|
|
8901
9066
|
if ( "getBoundingClientRect" in document.documentElement ) {
|
8902
|
-
|
8903
|
-
var elem = this[0], box;
|
8904
|
-
|
8905
|
-
if ( options ) {
|
8906
|
-
return this.each(function( i ) {
|
8907
|
-
jQuery.offset.setOffset( this, options, i );
|
8908
|
-
});
|
8909
|
-
}
|
8910
|
-
|
8911
|
-
if ( !elem || !elem.ownerDocument ) {
|
8912
|
-
return null;
|
8913
|
-
}
|
8914
|
-
|
8915
|
-
if ( elem === elem.ownerDocument.body ) {
|
8916
|
-
return jQuery.offset.bodyOffset( elem );
|
8917
|
-
}
|
8918
|
-
|
9067
|
+
getOffset = function( elem, doc, docElem, box ) {
|
8919
9068
|
try {
|
8920
9069
|
box = elem.getBoundingClientRect();
|
8921
9070
|
} catch(e) {}
|
8922
9071
|
|
8923
|
-
var doc = elem.ownerDocument,
|
8924
|
-
docElem = doc.documentElement;
|
8925
|
-
|
8926
9072
|
// Make sure we're not dealing with a disconnected DOM node
|
8927
9073
|
if ( !box || !jQuery.contains( docElem, elem ) ) {
|
8928
9074
|
return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
|
8929
9075
|
}
|
8930
9076
|
|
8931
9077
|
var body = doc.body,
|
8932
|
-
win = getWindow(doc),
|
9078
|
+
win = getWindow( doc ),
|
8933
9079
|
clientTop = docElem.clientTop || body.clientTop || 0,
|
8934
9080
|
clientLeft = docElem.clientLeft || body.clientLeft || 0,
|
8935
9081
|
scrollTop = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop || body.scrollTop,
|
@@ -8941,28 +9087,10 @@ if ( "getBoundingClientRect" in document.documentElement ) {
|
|
8941
9087
|
};
|
8942
9088
|
|
8943
9089
|
} else {
|
8944
|
-
|
8945
|
-
var elem = this[0];
|
8946
|
-
|
8947
|
-
if ( options ) {
|
8948
|
-
return this.each(function( i ) {
|
8949
|
-
jQuery.offset.setOffset( this, options, i );
|
8950
|
-
});
|
8951
|
-
}
|
8952
|
-
|
8953
|
-
if ( !elem || !elem.ownerDocument ) {
|
8954
|
-
return null;
|
8955
|
-
}
|
8956
|
-
|
8957
|
-
if ( elem === elem.ownerDocument.body ) {
|
8958
|
-
return jQuery.offset.bodyOffset( elem );
|
8959
|
-
}
|
8960
|
-
|
9090
|
+
getOffset = function( elem, doc, docElem ) {
|
8961
9091
|
var computedStyle,
|
8962
9092
|
offsetParent = elem.offsetParent,
|
8963
9093
|
prevOffsetParent = elem,
|
8964
|
-
doc = elem.ownerDocument,
|
8965
|
-
docElem = doc.documentElement,
|
8966
9094
|
body = doc.body,
|
8967
9095
|
defaultView = doc.defaultView,
|
8968
9096
|
prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
|
@@ -9013,6 +9141,29 @@ if ( "getBoundingClientRect" in document.documentElement ) {
|
|
9013
9141
|
};
|
9014
9142
|
}
|
9015
9143
|
|
9144
|
+
jQuery.fn.offset = function( options ) {
|
9145
|
+
if ( arguments.length ) {
|
9146
|
+
return options === undefined ?
|
9147
|
+
this :
|
9148
|
+
this.each(function( i ) {
|
9149
|
+
jQuery.offset.setOffset( this, options, i );
|
9150
|
+
});
|
9151
|
+
}
|
9152
|
+
|
9153
|
+
var elem = this[0],
|
9154
|
+
doc = elem && elem.ownerDocument;
|
9155
|
+
|
9156
|
+
if ( !doc ) {
|
9157
|
+
return null;
|
9158
|
+
}
|
9159
|
+
|
9160
|
+
if ( elem === doc.body ) {
|
9161
|
+
return jQuery.offset.bodyOffset( elem );
|
9162
|
+
}
|
9163
|
+
|
9164
|
+
return getOffset( elem, doc, doc.documentElement );
|
9165
|
+
};
|
9166
|
+
|
9016
9167
|
jQuery.offset = {
|
9017
9168
|
|
9018
9169
|
bodyOffset: function( body ) {
|
@@ -9118,42 +9269,30 @@ jQuery.fn.extend({
|
|
9118
9269
|
|
9119
9270
|
|
9120
9271
|
// Create scrollLeft and scrollTop methods
|
9121
|
-
jQuery.each(
|
9122
|
-
var
|
9272
|
+
jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
|
9273
|
+
var top = /Y/.test( prop );
|
9123
9274
|
|
9124
9275
|
jQuery.fn[ method ] = function( val ) {
|
9125
|
-
|
9276
|
+
return jQuery.access( this, function( elem, method, val ) {
|
9277
|
+
var win = getWindow( elem );
|
9126
9278
|
|
9127
|
-
|
9128
|
-
|
9129
|
-
|
9130
|
-
|
9131
|
-
|
9279
|
+
if ( val === undefined ) {
|
9280
|
+
return win ? (prop in win) ? win[ prop ] :
|
9281
|
+
jQuery.support.boxModel && win.document.documentElement[ method ] ||
|
9282
|
+
win.document.body[ method ] :
|
9283
|
+
elem[ method ];
|
9132
9284
|
}
|
9133
9285
|
|
9134
|
-
win = getWindow( elem );
|
9135
|
-
|
9136
|
-
// Return the scroll offset
|
9137
|
-
return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
|
9138
|
-
jQuery.support.boxModel && win.document.documentElement[ method ] ||
|
9139
|
-
win.document.body[ method ] :
|
9140
|
-
elem[ method ];
|
9141
|
-
}
|
9142
|
-
|
9143
|
-
// Set the scroll offset
|
9144
|
-
return this.each(function() {
|
9145
|
-
win = getWindow( this );
|
9146
|
-
|
9147
9286
|
if ( win ) {
|
9148
9287
|
win.scrollTo(
|
9149
|
-
!
|
9150
|
-
|
9288
|
+
!top ? val : jQuery( win ).scrollLeft(),
|
9289
|
+
top ? val : jQuery( win ).scrollTop()
|
9151
9290
|
);
|
9152
9291
|
|
9153
9292
|
} else {
|
9154
|
-
|
9293
|
+
elem[ method ] = val;
|
9155
9294
|
}
|
9156
|
-
});
|
9295
|
+
}, method, val, arguments.length, null );
|
9157
9296
|
};
|
9158
9297
|
});
|
9159
9298
|
|
@@ -9169,9 +9308,10 @@ function getWindow( elem ) {
|
|
9169
9308
|
|
9170
9309
|
|
9171
9310
|
// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
|
9172
|
-
jQuery.each(
|
9173
|
-
|
9174
|
-
|
9311
|
+
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
|
9312
|
+
var clientProp = "client" + name,
|
9313
|
+
scrollProp = "scroll" + name,
|
9314
|
+
offsetProp = "offset" + name;
|
9175
9315
|
|
9176
9316
|
// innerHeight and innerWidth
|
9177
9317
|
jQuery.fn[ "inner" + name ] = function() {
|
@@ -9193,50 +9333,48 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
|
|
9193
9333
|
null;
|
9194
9334
|
};
|
9195
9335
|
|
9196
|
-
jQuery.fn[ type ] = function(
|
9197
|
-
|
9198
|
-
|
9199
|
-
if ( !elem ) {
|
9200
|
-
return size == null ? null : this;
|
9201
|
-
}
|
9336
|
+
jQuery.fn[ type ] = function( value ) {
|
9337
|
+
return jQuery.access( this, function( elem, type, value ) {
|
9338
|
+
var doc, docElemProp, orig, ret;
|
9202
9339
|
|
9203
|
-
|
9204
|
-
|
9205
|
-
|
9206
|
-
|
9207
|
-
|
9208
|
-
|
9340
|
+
if ( jQuery.isWindow( elem ) ) {
|
9341
|
+
// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
|
9342
|
+
doc = elem.document;
|
9343
|
+
docElemProp = doc.documentElement[ clientProp ];
|
9344
|
+
return jQuery.support.boxModel && docElemProp ||
|
9345
|
+
doc.body && doc.body[ clientProp ] || docElemProp;
|
9346
|
+
}
|
9209
9347
|
|
9210
|
-
|
9211
|
-
|
9212
|
-
|
9213
|
-
|
9214
|
-
body = elem.document.body;
|
9215
|
-
return elem.document.compatMode === "CSS1Compat" && docElemProp ||
|
9216
|
-
body && body[ "client" + name ] || docElemProp;
|
9217
|
-
|
9218
|
-
// Get document width or height
|
9219
|
-
} else if ( elem.nodeType === 9 ) {
|
9220
|
-
// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
|
9221
|
-
return Math.max(
|
9222
|
-
elem.documentElement["client" + name],
|
9223
|
-
elem.body["scroll" + name], elem.documentElement["scroll" + name],
|
9224
|
-
elem.body["offset" + name], elem.documentElement["offset" + name]
|
9225
|
-
);
|
9348
|
+
// Get document width or height
|
9349
|
+
if ( elem.nodeType === 9 ) {
|
9350
|
+
// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
|
9351
|
+
doc = elem.documentElement;
|
9226
9352
|
|
9227
|
-
|
9228
|
-
|
9229
|
-
|
9230
|
-
|
9353
|
+
// when a window > document, IE6 reports a offset[Width/Height] > client[Width/Height]
|
9354
|
+
// so we can't use max, as it'll choose the incorrect offset[Width/Height]
|
9355
|
+
// instead we use the correct client[Width/Height]
|
9356
|
+
// support:IE6
|
9357
|
+
if ( doc[ clientProp ] >= doc[ scrollProp ] ) {
|
9358
|
+
return doc[ clientProp ];
|
9359
|
+
}
|
9360
|
+
|
9361
|
+
return Math.max(
|
9362
|
+
elem.body[ scrollProp ], doc[ scrollProp ],
|
9363
|
+
elem.body[ offsetProp ], doc[ offsetProp ]
|
9364
|
+
);
|
9365
|
+
}
|
9231
9366
|
|
9232
|
-
|
9367
|
+
// Get width or height on the element
|
9368
|
+
if ( value === undefined ) {
|
9369
|
+
orig = jQuery.css( elem, type );
|
9370
|
+
ret = parseFloat( orig );
|
9371
|
+
return jQuery.isNumeric( ret ) ? ret : orig;
|
9372
|
+
}
|
9233
9373
|
|
9234
|
-
|
9235
|
-
|
9236
|
-
|
9237
|
-
}
|
9374
|
+
// Set the width or height on the element
|
9375
|
+
jQuery( elem ).css( type, value );
|
9376
|
+
}, type, value, arguments.length, null );
|
9238
9377
|
};
|
9239
|
-
|
9240
9378
|
});
|
9241
9379
|
|
9242
9380
|
|