jquery-source 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/jquery-source/version.rb +1 -1
- data/vendor/assets/javascripts/jquery.js +253 -174
- metadata +1 -1
@@ -1,17 +1,17 @@
|
|
1
1
|
/*!
|
2
|
-
* jQuery JavaScript Library v1.4
|
2
|
+
* jQuery JavaScript Library v1.4.1
|
3
3
|
* http://jquery.com/
|
4
4
|
*
|
5
5
|
* Copyright 2010, John Resig
|
6
6
|
* Dual licensed under the MIT or GPL Version 2 licenses.
|
7
|
-
* http://
|
7
|
+
* http://jquery.org/license
|
8
8
|
*
|
9
9
|
* Includes Sizzle.js
|
10
10
|
* http://sizzlejs.com/
|
11
11
|
* Copyright 2010, The Dojo Foundation
|
12
12
|
* Released under the MIT, BSD, and GPL Licenses.
|
13
13
|
*
|
14
|
-
* Date:
|
14
|
+
* Date: Mon Jan 25 19:43:33 2010 -0500
|
15
15
|
*/
|
16
16
|
(function( window, undefined ) {
|
17
17
|
|
@@ -174,7 +174,7 @@ jQuery.fn = jQuery.prototype = {
|
|
174
174
|
selector: "",
|
175
175
|
|
176
176
|
// The current version of jQuery being used
|
177
|
-
jquery: "1.4",
|
177
|
+
jquery: "1.4.1",
|
178
178
|
|
179
179
|
// The default length of a jQuery object is 0
|
180
180
|
length: 0,
|
@@ -483,6 +483,31 @@ jQuery.extend({
|
|
483
483
|
}
|
484
484
|
return true;
|
485
485
|
},
|
486
|
+
|
487
|
+
error: function( msg ) {
|
488
|
+
throw msg;
|
489
|
+
},
|
490
|
+
|
491
|
+
parseJSON: function( data ) {
|
492
|
+
if ( typeof data !== "string" || !data ) {
|
493
|
+
return null;
|
494
|
+
}
|
495
|
+
|
496
|
+
// Make sure the incoming data is actual JSON
|
497
|
+
// Logic borrowed from http://json.org/json2.js
|
498
|
+
if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
|
499
|
+
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
|
500
|
+
.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {
|
501
|
+
|
502
|
+
// Try to use the native JSON parser first
|
503
|
+
return window.JSON && window.JSON.parse ?
|
504
|
+
window.JSON.parse( data ) :
|
505
|
+
(new Function("return " + data))();
|
506
|
+
|
507
|
+
} else {
|
508
|
+
jQuery.error( "Invalid JSON: " + data );
|
509
|
+
}
|
510
|
+
},
|
486
511
|
|
487
512
|
noop: function() {},
|
488
513
|
|
@@ -670,26 +695,15 @@ jQuery.extend({
|
|
670
695
|
// Use of jQuery.browser is frowned upon.
|
671
696
|
// More details: http://docs.jquery.com/Utilities/jQuery.browser
|
672
697
|
uaMatch: function( ua ) {
|
673
|
-
var ret = { browser: "" };
|
674
|
-
|
675
698
|
ua = ua.toLowerCase();
|
676
699
|
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
} else if ( /msie/.test( ua ) ) {
|
684
|
-
ret = { browser: "msie", version: /msie ([\w.]+)/ };
|
685
|
-
|
686
|
-
} else if ( /mozilla/.test( ua ) && !/compatible/.test( ua ) ) {
|
687
|
-
ret = { browser: "mozilla", version: /rv:([\w.]+)/ };
|
688
|
-
}
|
689
|
-
|
690
|
-
ret.version = (ret.version && ret.version.exec( ua ) || [0, "0"])[1];
|
700
|
+
var match = /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
|
701
|
+
/(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) ||
|
702
|
+
/(msie) ([\w.]+)/.exec( ua ) ||
|
703
|
+
!/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) ||
|
704
|
+
[];
|
691
705
|
|
692
|
-
return
|
706
|
+
return { browser: match[1] || "", version: match[2] || "0" };
|
693
707
|
},
|
694
708
|
|
695
709
|
browser: {}
|
@@ -751,12 +765,6 @@ function doScrollCheck() {
|
|
751
765
|
jQuery.ready();
|
752
766
|
}
|
753
767
|
|
754
|
-
if ( indexOf ) {
|
755
|
-
jQuery.inArray = function( elem, array ) {
|
756
|
-
return indexOf.call( array, elem );
|
757
|
-
};
|
758
|
-
}
|
759
|
-
|
760
768
|
function evalScript( i, elem ) {
|
761
769
|
if ( elem.src ) {
|
762
770
|
jQuery.ajax({
|
@@ -864,6 +872,7 @@ function now() {
|
|
864
872
|
optSelected: document.createElement("select").appendChild( document.createElement("option") ).selected,
|
865
873
|
|
866
874
|
// Will be defined later
|
875
|
+
checkClone: false,
|
867
876
|
scriptEval: false,
|
868
877
|
noCloneEvent: true,
|
869
878
|
boxModel: null
|
@@ -896,9 +905,17 @@ function now() {
|
|
896
905
|
div.cloneNode(true).fireEvent("onclick");
|
897
906
|
}
|
898
907
|
|
908
|
+
div = document.createElement("div");
|
909
|
+
div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
|
910
|
+
|
911
|
+
var fragment = document.createDocumentFragment();
|
912
|
+
fragment.appendChild( div.firstChild );
|
913
|
+
|
914
|
+
// WebKit doesn't clone checked state correctly in fragments
|
915
|
+
jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
|
916
|
+
|
899
917
|
// Figure out if the W3C box model works as expected
|
900
918
|
// document.body must exist before we can do this
|
901
|
-
// TODO: This timeout is temporary until I move ready into core.js.
|
902
919
|
jQuery(function() {
|
903
920
|
var div = document.createElement("div");
|
904
921
|
div.style.width = div.style.paddingLeft = "1px";
|
@@ -1454,7 +1471,7 @@ jQuery.extend({
|
|
1454
1471
|
if ( set ) {
|
1455
1472
|
// We can't allow the type property to be changed (since it causes problems in IE)
|
1456
1473
|
if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) {
|
1457
|
-
|
1474
|
+
jQuery.error( "type property can't be changed" );
|
1458
1475
|
}
|
1459
1476
|
|
1460
1477
|
elem[ name ] = value;
|
@@ -1580,19 +1597,28 @@ jQuery.event = {
|
|
1580
1597
|
// Handle multiple events separated by a space
|
1581
1598
|
// jQuery(...).bind("mouseover mouseout", fn);
|
1582
1599
|
types = types.split( /\s+/ );
|
1583
|
-
|
1600
|
+
|
1601
|
+
var type, i = 0;
|
1602
|
+
|
1584
1603
|
while ( (type = types[ i++ ]) ) {
|
1585
1604
|
// Namespaced event handlers
|
1586
1605
|
var namespaces = type.split(".");
|
1587
1606
|
type = namespaces.shift();
|
1607
|
+
|
1608
|
+
if ( i > 1 ) {
|
1609
|
+
handler = jQuery.proxy( handler );
|
1610
|
+
|
1611
|
+
if ( data !== undefined ) {
|
1612
|
+
handler.data = data;
|
1613
|
+
}
|
1614
|
+
}
|
1615
|
+
|
1588
1616
|
handler.type = namespaces.slice(0).sort().join(".");
|
1589
1617
|
|
1590
1618
|
// Get the current list of functions bound to this event
|
1591
1619
|
var handlers = events[ type ],
|
1592
1620
|
special = this.special[ type ] || {};
|
1593
1621
|
|
1594
|
-
|
1595
|
-
|
1596
1622
|
// Init the event handler queue
|
1597
1623
|
if ( !handlers ) {
|
1598
1624
|
handlers = events[ type ] = {};
|
@@ -1614,6 +1640,8 @@ jQuery.event = {
|
|
1614
1640
|
var modifiedHandler = special.add.call( elem, handler, data, namespaces, handlers );
|
1615
1641
|
if ( modifiedHandler && jQuery.isFunction( modifiedHandler ) ) {
|
1616
1642
|
modifiedHandler.guid = modifiedHandler.guid || handler.guid;
|
1643
|
+
modifiedHandler.data = modifiedHandler.data || handler.data;
|
1644
|
+
modifiedHandler.type = modifiedHandler.type || handler.type;
|
1617
1645
|
handler = modifiedHandler;
|
1618
1646
|
}
|
1619
1647
|
}
|
@@ -1779,36 +1807,48 @@ jQuery.event = {
|
|
1779
1807
|
handle.apply( elem, data );
|
1780
1808
|
}
|
1781
1809
|
|
1782
|
-
var
|
1810
|
+
var parent = elem.parentNode || elem.ownerDocument;
|
1811
|
+
|
1812
|
+
// Trigger an inline bound script
|
1783
1813
|
try {
|
1784
1814
|
if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) {
|
1785
|
-
|
1786
|
-
|
1815
|
+
if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) {
|
1816
|
+
event.result = false;
|
1817
|
+
}
|
1787
1818
|
}
|
1819
|
+
|
1788
1820
|
// prevent IE from throwing an error for some elements with some event types, see #3533
|
1789
1821
|
} catch (e) {}
|
1790
1822
|
|
1791
|
-
|
1823
|
+
if ( !event.isPropagationStopped() && parent ) {
|
1824
|
+
jQuery.event.trigger( event, data, parent, true );
|
1792
1825
|
|
1793
|
-
|
1794
|
-
|
1795
|
-
|
1796
|
-
try {
|
1797
|
-
elem[ type ]();
|
1798
|
-
// prevent IE from throwing an error for some hidden elements
|
1799
|
-
} catch (e) {}
|
1826
|
+
} else if ( !event.isDefaultPrevented() ) {
|
1827
|
+
var target = event.target, old,
|
1828
|
+
isClick = jQuery.nodeName(target, "a") && type === "click";
|
1800
1829
|
|
1801
|
-
|
1802
|
-
|
1803
|
-
|
1804
|
-
|
1830
|
+
if ( !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
|
1831
|
+
try {
|
1832
|
+
if ( target[ type ] ) {
|
1833
|
+
// Make sure that we don't accidentally re-trigger the onFOO events
|
1834
|
+
old = target[ "on" + type ];
|
1835
|
+
|
1836
|
+
if ( old ) {
|
1837
|
+
target[ "on" + type ] = null;
|
1838
|
+
}
|
1839
|
+
|
1840
|
+
this.triggered = true;
|
1841
|
+
target[ type ]();
|
1842
|
+
}
|
1843
|
+
|
1844
|
+
// prevent IE from throwing an error for some elements with some event types, see #3533
|
1845
|
+
} catch (e) {}
|
1805
1846
|
|
1806
|
-
|
1847
|
+
if ( old ) {
|
1848
|
+
target[ "on" + type ] = old;
|
1849
|
+
}
|
1807
1850
|
|
1808
|
-
|
1809
|
-
var parent = elem.parentNode || elem.ownerDocument;
|
1810
|
-
if ( parent ) {
|
1811
|
-
jQuery.event.trigger( event, data, parent, true );
|
1851
|
+
this.triggered = false;
|
1812
1852
|
}
|
1813
1853
|
}
|
1814
1854
|
},
|
@@ -1937,6 +1977,8 @@ jQuery.event = {
|
|
1937
1977
|
jQuery.extend( proxy, data || {} );
|
1938
1978
|
|
1939
1979
|
proxy.guid += data.selector + data.live;
|
1980
|
+
data.liveProxy = proxy;
|
1981
|
+
|
1940
1982
|
jQuery.event.add( this, data.live, liveHandler, data );
|
1941
1983
|
|
1942
1984
|
},
|
@@ -2168,18 +2210,18 @@ function testChange( e ) {
|
|
2168
2210
|
data = jQuery.data( elem, "_change_data" );
|
2169
2211
|
val = getVal(elem);
|
2170
2212
|
|
2171
|
-
if ( val === data ) {
|
2172
|
-
return;
|
2173
|
-
}
|
2174
|
-
|
2175
2213
|
// the current data will be also retrieved by beforeactivate
|
2176
2214
|
if ( e.type !== "focusout" || elem.type !== "radio" ) {
|
2177
2215
|
jQuery.data( elem, "_change_data", val );
|
2178
2216
|
}
|
2217
|
+
|
2218
|
+
if ( data === undefined || val === data ) {
|
2219
|
+
return;
|
2220
|
+
}
|
2179
2221
|
|
2180
|
-
if (
|
2222
|
+
if ( data != null || val ) {
|
2181
2223
|
e.type = "change";
|
2182
|
-
return jQuery.event.trigger( e, arguments[1],
|
2224
|
+
return jQuery.event.trigger( e, arguments[1], elem );
|
2183
2225
|
}
|
2184
2226
|
}
|
2185
2227
|
|
@@ -2274,7 +2316,6 @@ jQuery.each(["bind", "one"], function( i, name ) {
|
|
2274
2316
|
}
|
2275
2317
|
|
2276
2318
|
if ( jQuery.isFunction( data ) ) {
|
2277
|
-
thisObject = fn;
|
2278
2319
|
fn = data;
|
2279
2320
|
data = undefined;
|
2280
2321
|
}
|
@@ -2285,7 +2326,7 @@ jQuery.each(["bind", "one"], function( i, name ) {
|
|
2285
2326
|
}) : fn;
|
2286
2327
|
|
2287
2328
|
return type === "unload" && name !== "one" ?
|
2288
|
-
this.one( type, data, fn
|
2329
|
+
this.one( type, data, fn ) :
|
2289
2330
|
this.each(function() {
|
2290
2331
|
jQuery.event.add( this, type, handler, data );
|
2291
2332
|
});
|
@@ -2346,32 +2387,52 @@ jQuery.fn.extend({
|
|
2346
2387
|
|
2347
2388
|
hover: function( fnOver, fnOut ) {
|
2348
2389
|
return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
|
2349
|
-
}
|
2390
|
+
}
|
2391
|
+
});
|
2392
|
+
|
2393
|
+
jQuery.each(["live", "die"], function( i, name ) {
|
2394
|
+
jQuery.fn[ name ] = function( types, data, fn ) {
|
2395
|
+
var type, i = 0;
|
2350
2396
|
|
2351
|
-
live: function( type, data, fn ) {
|
2352
2397
|
if ( jQuery.isFunction( data ) ) {
|
2353
2398
|
fn = data;
|
2354
2399
|
data = undefined;
|
2355
2400
|
}
|
2356
2401
|
|
2357
|
-
|
2358
|
-
data: data, selector: this.selector, live: type
|
2359
|
-
}, fn );
|
2402
|
+
types = (types || "").split( /\s+/ );
|
2360
2403
|
|
2361
|
-
|
2362
|
-
|
2404
|
+
while ( (type = types[ i++ ]) != null ) {
|
2405
|
+
type = type === "focus" ? "focusin" : // focus --> focusin
|
2406
|
+
type === "blur" ? "focusout" : // blur --> focusout
|
2407
|
+
type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
|
2408
|
+
type;
|
2409
|
+
|
2410
|
+
if ( name === "live" ) {
|
2411
|
+
// bind live handler
|
2412
|
+
jQuery( this.context ).bind( liveConvert( type, this.selector ), {
|
2413
|
+
data: data, selector: this.selector, live: type
|
2414
|
+
}, fn );
|
2363
2415
|
|
2364
|
-
|
2365
|
-
|
2416
|
+
} else {
|
2417
|
+
// unbind live handler
|
2418
|
+
jQuery( this.context ).unbind( liveConvert( type, this.selector ), fn ? { guid: fn.guid + this.selector + type } : null );
|
2419
|
+
}
|
2420
|
+
}
|
2421
|
+
|
2366
2422
|
return this;
|
2367
2423
|
}
|
2368
2424
|
});
|
2369
2425
|
|
2370
2426
|
function liveHandler( event ) {
|
2371
|
-
var stop
|
2372
|
-
related, match, fn, elem, j, i, data,
|
2427
|
+
var stop, elems = [], selectors = [], args = arguments,
|
2428
|
+
related, match, fn, elem, j, i, l, data,
|
2373
2429
|
live = jQuery.extend({}, jQuery.data( this, "events" ).live);
|
2374
2430
|
|
2431
|
+
// Make sure we avoid non-left-click bubbling in Firefox (#3861)
|
2432
|
+
if ( event.button && event.type === "click" ) {
|
2433
|
+
return;
|
2434
|
+
}
|
2435
|
+
|
2375
2436
|
for ( j in live ) {
|
2376
2437
|
fn = live[j];
|
2377
2438
|
if ( fn.live === event.type ||
|
@@ -2422,7 +2483,7 @@ function liveHandler( event ) {
|
|
2422
2483
|
}
|
2423
2484
|
|
2424
2485
|
function liveConvert( type, selector ) {
|
2425
|
-
return
|
2486
|
+
return "live." + (type ? type + "." : "") + selector.replace(/\./g, "`").replace(/ /g, "&");
|
2426
2487
|
}
|
2427
2488
|
|
2428
2489
|
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
|
@@ -2569,7 +2630,7 @@ var Sizzle = function(selector, context, results, seed) {
|
|
2569
2630
|
}
|
2570
2631
|
|
2571
2632
|
if ( !checkSet ) {
|
2572
|
-
|
2633
|
+
Sizzle.error( cur || selector );
|
2573
2634
|
}
|
2574
2635
|
|
2575
2636
|
if ( toString.call(checkSet) === "[object Array]" ) {
|
@@ -2722,7 +2783,7 @@ Sizzle.filter = function(expr, set, inplace, not){
|
|
2722
2783
|
// Improper expression
|
2723
2784
|
if ( expr === old ) {
|
2724
2785
|
if ( anyFound == null ) {
|
2725
|
-
|
2786
|
+
Sizzle.error( expr );
|
2726
2787
|
} else {
|
2727
2788
|
break;
|
2728
2789
|
}
|
@@ -2734,6 +2795,10 @@ Sizzle.filter = function(expr, set, inplace, not){
|
|
2734
2795
|
return curLoop;
|
2735
2796
|
};
|
2736
2797
|
|
2798
|
+
Sizzle.error = function( msg ) {
|
2799
|
+
throw "Syntax error, unrecognized expression: " + msg;
|
2800
|
+
};
|
2801
|
+
|
2737
2802
|
var Expr = Sizzle.selectors = {
|
2738
2803
|
order: [ "ID", "NAME", "TAG" ],
|
2739
2804
|
match: {
|
@@ -3038,7 +3103,7 @@ var Expr = Sizzle.selectors = {
|
|
3038
3103
|
|
3039
3104
|
return true;
|
3040
3105
|
} else {
|
3041
|
-
|
3106
|
+
Sizzle.error( "Syntax error, unrecognized expression: " + name );
|
3042
3107
|
}
|
3043
3108
|
},
|
3044
3109
|
CHILD: function(elem, match){
|
@@ -3540,7 +3605,7 @@ var winnow = function( elements, qualifier, keep ) {
|
|
3540
3605
|
if ( isSimple.test( qualifier ) ) {
|
3541
3606
|
return jQuery.filter(qualifier, filtered, !keep);
|
3542
3607
|
} else {
|
3543
|
-
qualifier = jQuery.filter( qualifier,
|
3608
|
+
qualifier = jQuery.filter( qualifier, filtered );
|
3544
3609
|
}
|
3545
3610
|
}
|
3546
3611
|
|
@@ -3751,7 +3816,7 @@ jQuery.extend({
|
|
3751
3816
|
|
3752
3817
|
dir: function( elem, dir, until ) {
|
3753
3818
|
var matched = [], cur = elem[dir];
|
3754
|
-
while ( cur && cur.nodeType !== 9 && (until === undefined || !jQuery( cur ).is( until )) ) {
|
3819
|
+
while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
|
3755
3820
|
if ( cur.nodeType === 1 ) {
|
3756
3821
|
matched.push( cur );
|
3757
3822
|
}
|
@@ -3792,6 +3857,7 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
|
|
3792
3857
|
rtagName = /<([\w:]+)/,
|
3793
3858
|
rtbody = /<tbody/i,
|
3794
3859
|
rhtml = /<|&\w+;/,
|
3860
|
+
rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, // checked="checked" or checked (html5)
|
3795
3861
|
fcloseTag = function( all, front, tag ) {
|
3796
3862
|
return rselfClosing.test( tag ) ?
|
3797
3863
|
all :
|
@@ -3822,7 +3888,7 @@ jQuery.fn.extend({
|
|
3822
3888
|
if ( jQuery.isFunction(text) ) {
|
3823
3889
|
return this.each(function(i) {
|
3824
3890
|
var self = jQuery(this);
|
3825
|
-
|
3891
|
+
self.text( text.call(this, i, self.text()) );
|
3826
3892
|
});
|
3827
3893
|
}
|
3828
3894
|
|
@@ -3863,6 +3929,12 @@ jQuery.fn.extend({
|
|
3863
3929
|
},
|
3864
3930
|
|
3865
3931
|
wrapInner: function( html ) {
|
3932
|
+
if ( jQuery.isFunction( html ) ) {
|
3933
|
+
return this.each(function(i) {
|
3934
|
+
jQuery(this).wrapInner( html.call(this, i) );
|
3935
|
+
});
|
3936
|
+
}
|
3937
|
+
|
3866
3938
|
return this.each(function() {
|
3867
3939
|
var self = jQuery( this ), contents = self.contents();
|
3868
3940
|
|
@@ -3976,11 +4048,13 @@ jQuery.fn.extend({
|
|
3976
4048
|
(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
|
3977
4049
|
!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
|
3978
4050
|
|
4051
|
+
value = value.replace(rxhtmlTag, fcloseTag);
|
4052
|
+
|
3979
4053
|
try {
|
3980
4054
|
for ( var i = 0, l = this.length; i < l; i++ ) {
|
3981
4055
|
// Remove element nodes and prevent memory leaks
|
3982
4056
|
if ( this[i].nodeType === 1 ) {
|
3983
|
-
cleanData( this[i].getElementsByTagName("*") );
|
4057
|
+
jQuery.cleanData( this[i].getElementsByTagName("*") );
|
3984
4058
|
this[i].innerHTML = value;
|
3985
4059
|
}
|
3986
4060
|
}
|
@@ -4011,6 +4085,12 @@ jQuery.fn.extend({
|
|
4011
4085
|
// this can help fix replacing a parent with child elements
|
4012
4086
|
if ( !jQuery.isFunction( value ) ) {
|
4013
4087
|
value = jQuery( value ).detach();
|
4088
|
+
|
4089
|
+
} else {
|
4090
|
+
return this.each(function(i) {
|
4091
|
+
var self = jQuery(this), old = self.html();
|
4092
|
+
self.replaceWith( value.call( this, i, old ) );
|
4093
|
+
});
|
4014
4094
|
}
|
4015
4095
|
|
4016
4096
|
return this.each(function() {
|
@@ -4036,11 +4116,18 @@ jQuery.fn.extend({
|
|
4036
4116
|
domManip: function( args, table, callback ) {
|
4037
4117
|
var results, first, value = args[0], scripts = [];
|
4038
4118
|
|
4119
|
+
// We can't cloneNode fragments that contain checked, in WebKit
|
4120
|
+
if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
|
4121
|
+
return this.each(function() {
|
4122
|
+
jQuery(this).domManip( args, table, callback, true );
|
4123
|
+
});
|
4124
|
+
}
|
4125
|
+
|
4039
4126
|
if ( jQuery.isFunction(value) ) {
|
4040
4127
|
return this.each(function(i) {
|
4041
4128
|
var self = jQuery(this);
|
4042
4129
|
args[0] = value.call(this, i, table ? self.html() : undefined);
|
4043
|
-
|
4130
|
+
self.domManip( args, table, callback );
|
4044
4131
|
});
|
4045
4132
|
}
|
4046
4133
|
|
@@ -4109,16 +4196,16 @@ function cloneCopyEvent(orig, ret) {
|
|
4109
4196
|
}
|
4110
4197
|
|
4111
4198
|
function buildFragment( args, nodes, scripts ) {
|
4112
|
-
var fragment, cacheable,
|
4199
|
+
var fragment, cacheable, cacheresults, doc;
|
4113
4200
|
|
4114
|
-
|
4201
|
+
// webkit does not clone 'checked' attribute of radio inputs on cloneNode, so don't cache if string has a checked
|
4202
|
+
if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && args[0].indexOf("<option") < 0 && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
|
4115
4203
|
cacheable = true;
|
4116
4204
|
cacheresults = jQuery.fragments[ args[0] ];
|
4117
4205
|
if ( cacheresults ) {
|
4118
4206
|
if ( cacheresults !== 1 ) {
|
4119
4207
|
fragment = cacheresults;
|
4120
4208
|
}
|
4121
|
-
cached = true;
|
4122
4209
|
}
|
4123
4210
|
}
|
4124
4211
|
|
@@ -4161,8 +4248,8 @@ jQuery.each({
|
|
4161
4248
|
remove: function( selector, keepData ) {
|
4162
4249
|
if ( !selector || jQuery.filter( selector, [ this ] ).length ) {
|
4163
4250
|
if ( !keepData && this.nodeType === 1 ) {
|
4164
|
-
cleanData( this.getElementsByTagName("*") );
|
4165
|
-
cleanData( [ this ] );
|
4251
|
+
jQuery.cleanData( this.getElementsByTagName("*") );
|
4252
|
+
jQuery.cleanData( [ this ] );
|
4166
4253
|
}
|
4167
4254
|
|
4168
4255
|
if ( this.parentNode ) {
|
@@ -4174,7 +4261,7 @@ jQuery.each({
|
|
4174
4261
|
empty: function() {
|
4175
4262
|
// Remove element nodes and prevent memory leaks
|
4176
4263
|
if ( this.nodeType === 1 ) {
|
4177
|
-
cleanData( this.getElementsByTagName("*") );
|
4264
|
+
jQuery.cleanData( this.getElementsByTagName("*") );
|
4178
4265
|
}
|
4179
4266
|
|
4180
4267
|
// Remove any remaining nodes
|
@@ -4281,16 +4368,15 @@ jQuery.extend({
|
|
4281
4368
|
}
|
4282
4369
|
|
4283
4370
|
return ret;
|
4284
|
-
}
|
4285
|
-
|
4286
|
-
|
4287
|
-
|
4288
|
-
|
4289
|
-
|
4290
|
-
delete jQuery.cache[ id ];
|
4371
|
+
},
|
4372
|
+
|
4373
|
+
cleanData: function( elems ) {
|
4374
|
+
for ( var i = 0, elem, id; (elem = elems[i]) != null; i++ ) {
|
4375
|
+
jQuery.event.remove( elem );
|
4376
|
+
jQuery.removeData( elem );
|
4291
4377
|
}
|
4292
4378
|
}
|
4293
|
-
}
|
4379
|
+
});
|
4294
4380
|
// exclude the following css properties to add px
|
4295
4381
|
var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
|
4296
4382
|
ralpha = /alpha\([^)]*\)/,
|
@@ -4567,18 +4653,19 @@ jQuery.fn.extend({
|
|
4567
4653
|
}
|
4568
4654
|
}
|
4569
4655
|
|
4656
|
+
var self = this;
|
4657
|
+
|
4570
4658
|
// Request the remote document
|
4571
4659
|
jQuery.ajax({
|
4572
4660
|
url: url,
|
4573
4661
|
type: type,
|
4574
4662
|
dataType: "html",
|
4575
4663
|
data: params,
|
4576
|
-
context:this,
|
4577
4664
|
complete: function( res, status ) {
|
4578
4665
|
// If successful, inject the HTML into all the matched elements
|
4579
4666
|
if ( status === "success" || status === "notmodified" ) {
|
4580
4667
|
// See if a selector was specified
|
4581
|
-
|
4668
|
+
self.html( selector ?
|
4582
4669
|
// Create a dummy div to hold the results
|
4583
4670
|
jQuery("<div />")
|
4584
4671
|
// inject the contents of the document in, removing the scripts
|
@@ -4593,7 +4680,7 @@ jQuery.fn.extend({
|
|
4593
4680
|
}
|
4594
4681
|
|
4595
4682
|
if ( callback ) {
|
4596
|
-
|
4683
|
+
self.each( callback, [res.responseText, status, res] );
|
4597
4684
|
}
|
4598
4685
|
}
|
4599
4686
|
});
|
@@ -4727,7 +4814,7 @@ jQuery.extend({
|
|
4727
4814
|
var s = jQuery.extend(true, {}, jQuery.ajaxSettings, origSettings);
|
4728
4815
|
|
4729
4816
|
var jsonp, status, data,
|
4730
|
-
callbackContext =
|
4817
|
+
callbackContext = origSettings && origSettings.context || s,
|
4731
4818
|
type = s.type.toUpperCase();
|
4732
4819
|
|
4733
4820
|
// convert data if not already a string
|
@@ -4913,7 +5000,7 @@ jQuery.extend({
|
|
4913
5000
|
// Wait for a response to come back
|
4914
5001
|
var onreadystatechange = xhr.onreadystatechange = function( isTimeout ) {
|
4915
5002
|
// The request was aborted
|
4916
|
-
if ( !xhr || xhr.readyState === 0 ) {
|
5003
|
+
if ( !xhr || xhr.readyState === 0 || isTimeout === "abort" ) {
|
4917
5004
|
// Opera doesn't call onreadystatechange before this point
|
4918
5005
|
// so we simulate the call
|
4919
5006
|
if ( !requestDone ) {
|
@@ -4938,13 +5025,16 @@ jQuery.extend({
|
|
4938
5025
|
"notmodified" :
|
4939
5026
|
"success";
|
4940
5027
|
|
5028
|
+
var errMsg;
|
5029
|
+
|
4941
5030
|
if ( status === "success" ) {
|
4942
5031
|
// Watch for, and catch, XML document parse errors
|
4943
5032
|
try {
|
4944
5033
|
// process the data (runs the xml through httpData regardless of callback)
|
4945
5034
|
data = jQuery.httpData( xhr, s.dataType, s );
|
4946
|
-
} catch(
|
5035
|
+
} catch(err) {
|
4947
5036
|
status = "parsererror";
|
5037
|
+
errMsg = err;
|
4948
5038
|
}
|
4949
5039
|
}
|
4950
5040
|
|
@@ -4955,7 +5045,7 @@ jQuery.extend({
|
|
4955
5045
|
success();
|
4956
5046
|
}
|
4957
5047
|
} else {
|
4958
|
-
jQuery.handleError(s, xhr, status);
|
5048
|
+
jQuery.handleError(s, xhr, status, errMsg);
|
4959
5049
|
}
|
4960
5050
|
|
4961
5051
|
// Fire the complete handlers
|
@@ -4979,12 +5069,9 @@ jQuery.extend({
|
|
4979
5069
|
xhr.abort = function() {
|
4980
5070
|
if ( xhr ) {
|
4981
5071
|
oldAbort.call( xhr );
|
4982
|
-
if ( xhr ) {
|
4983
|
-
xhr.readyState = 0;
|
4984
|
-
}
|
4985
5072
|
}
|
4986
5073
|
|
4987
|
-
onreadystatechange();
|
5074
|
+
onreadystatechange( "abort" );
|
4988
5075
|
};
|
4989
5076
|
} catch(e) { }
|
4990
5077
|
|
@@ -5052,7 +5139,7 @@ jQuery.extend({
|
|
5052
5139
|
handleError: function( s, xhr, status, e ) {
|
5053
5140
|
// If a local callback was specified, fire it
|
5054
5141
|
if ( s.error ) {
|
5055
|
-
s.error.call( s.context ||
|
5142
|
+
s.error.call( s.context || s, xhr, status, e );
|
5056
5143
|
}
|
5057
5144
|
|
5058
5145
|
// Fire the global callback
|
@@ -5100,7 +5187,7 @@ jQuery.extend({
|
|
5100
5187
|
data = xml ? xhr.responseXML : xhr.responseText;
|
5101
5188
|
|
5102
5189
|
if ( xml && data.documentElement.nodeName === "parsererror" ) {
|
5103
|
-
|
5190
|
+
jQuery.error( "parsererror" );
|
5104
5191
|
}
|
5105
5192
|
|
5106
5193
|
// Allow a pre-filtering function to sanitize the response
|
@@ -5113,23 +5200,7 @@ jQuery.extend({
|
|
5113
5200
|
if ( typeof data === "string" ) {
|
5114
5201
|
// Get the JavaScript object, if JSON is used.
|
5115
5202
|
if ( type === "json" || !type && ct.indexOf("json") >= 0 ) {
|
5116
|
-
|
5117
|
-
// Logic borrowed from http://json.org/json2.js
|
5118
|
-
if (/^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
|
5119
|
-
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
|
5120
|
-
.replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) {
|
5121
|
-
|
5122
|
-
// Try to use the native JSON parser first
|
5123
|
-
if ( window.JSON && window.JSON.parse ) {
|
5124
|
-
data = window.JSON.parse( data );
|
5125
|
-
|
5126
|
-
} else {
|
5127
|
-
data = (new Function("return " + data))();
|
5128
|
-
}
|
5129
|
-
|
5130
|
-
} else {
|
5131
|
-
throw "Invalid JSON: " + data;
|
5132
|
-
}
|
5203
|
+
data = jQuery.parseJSON( data );
|
5133
5204
|
|
5134
5205
|
// If the type is "script", eval it in global context
|
5135
5206
|
} else if ( type === "script" || !type && ct.indexOf("javascript") >= 0 ) {
|
@@ -5143,7 +5214,6 @@ jQuery.extend({
|
|
5143
5214
|
// Serialize an array of form elements or a set of
|
5144
5215
|
// key/values into a query string
|
5145
5216
|
param: function( a, traditional ) {
|
5146
|
-
|
5147
5217
|
var s = [];
|
5148
5218
|
|
5149
5219
|
// Set traditional to true for jQuery <= 1.3.2 behavior.
|
@@ -5151,12 +5221,6 @@ jQuery.extend({
|
|
5151
5221
|
traditional = jQuery.ajaxSettings.traditional;
|
5152
5222
|
}
|
5153
5223
|
|
5154
|
-
function add( key, value ) {
|
5155
|
-
// If value is a function, invoke it and return its value
|
5156
|
-
value = jQuery.isFunction(value) ? value() : value;
|
5157
|
-
s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value);
|
5158
|
-
}
|
5159
|
-
|
5160
5224
|
// If an array was passed in, assume that it is an array of form elements.
|
5161
5225
|
if ( jQuery.isArray(a) || a.jquery ) {
|
5162
5226
|
// Serialize the form elements
|
@@ -5167,43 +5231,51 @@ jQuery.extend({
|
|
5167
5231
|
} else {
|
5168
5232
|
// If traditional, encode the "old" way (the way 1.3.2 or older
|
5169
5233
|
// did it), otherwise encode params recursively.
|
5170
|
-
|
5171
|
-
|
5172
|
-
|
5173
|
-
// Serialize array item.
|
5174
|
-
jQuery.each( obj, function( i, v ) {
|
5175
|
-
if ( traditional ) {
|
5176
|
-
// Treat each array item as a scalar.
|
5177
|
-
add( prefix, v );
|
5178
|
-
} else {
|
5179
|
-
// If array item is non-scalar (array or object), encode its
|
5180
|
-
// numeric index to resolve deserialization ambiguity issues.
|
5181
|
-
// Note that rack (as of 1.0.0) can't currently deserialize
|
5182
|
-
// nested arrays properly, and attempting to do so may cause
|
5183
|
-
// a server error. Possible fixes are to modify rack's
|
5184
|
-
// deserialization algorithm or to provide an option or flag
|
5185
|
-
// to force array serialization to be shallow.
|
5186
|
-
buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v );
|
5187
|
-
}
|
5188
|
-
});
|
5189
|
-
|
5190
|
-
} else if ( !traditional && obj != null && typeof obj === "object" ) {
|
5191
|
-
// Serialize object item.
|
5192
|
-
jQuery.each( obj, function( k, v ) {
|
5193
|
-
buildParams( prefix + "[" + k + "]", v );
|
5194
|
-
});
|
5195
|
-
|
5196
|
-
} else {
|
5197
|
-
// Serialize scalar item.
|
5198
|
-
add( prefix, obj );
|
5199
|
-
}
|
5200
|
-
});
|
5234
|
+
for ( var prefix in a ) {
|
5235
|
+
buildParams( prefix, a[prefix] );
|
5236
|
+
}
|
5201
5237
|
}
|
5202
|
-
|
5238
|
+
|
5203
5239
|
// Return the resulting serialization
|
5204
5240
|
return s.join("&").replace(r20, "+");
|
5205
|
-
}
|
5206
5241
|
|
5242
|
+
function buildParams( prefix, obj ) {
|
5243
|
+
if ( jQuery.isArray(obj) ) {
|
5244
|
+
// Serialize array item.
|
5245
|
+
jQuery.each( obj, function( i, v ) {
|
5246
|
+
if ( traditional ) {
|
5247
|
+
// Treat each array item as a scalar.
|
5248
|
+
add( prefix, v );
|
5249
|
+
} else {
|
5250
|
+
// If array item is non-scalar (array or object), encode its
|
5251
|
+
// numeric index to resolve deserialization ambiguity issues.
|
5252
|
+
// Note that rack (as of 1.0.0) can't currently deserialize
|
5253
|
+
// nested arrays properly, and attempting to do so may cause
|
5254
|
+
// a server error. Possible fixes are to modify rack's
|
5255
|
+
// deserialization algorithm or to provide an option or flag
|
5256
|
+
// to force array serialization to be shallow.
|
5257
|
+
buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v );
|
5258
|
+
}
|
5259
|
+
});
|
5260
|
+
|
5261
|
+
} else if ( !traditional && obj != null && typeof obj === "object" ) {
|
5262
|
+
// Serialize object item.
|
5263
|
+
jQuery.each( obj, function( k, v ) {
|
5264
|
+
buildParams( prefix + "[" + k + "]", v );
|
5265
|
+
});
|
5266
|
+
|
5267
|
+
} else {
|
5268
|
+
// Serialize scalar item.
|
5269
|
+
add( prefix, obj );
|
5270
|
+
}
|
5271
|
+
}
|
5272
|
+
|
5273
|
+
function add( key, value ) {
|
5274
|
+
// If value is a function, invoke it and return its value
|
5275
|
+
value = jQuery.isFunction(value) ? value() : value;
|
5276
|
+
s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value);
|
5277
|
+
}
|
5278
|
+
}
|
5207
5279
|
});
|
5208
5280
|
var elemdisplay = {},
|
5209
5281
|
rfxtypes = /toggle|show|hide/,
|
@@ -5220,7 +5292,7 @@ var elemdisplay = {},
|
|
5220
5292
|
|
5221
5293
|
jQuery.fn.extend({
|
5222
5294
|
show: function( speed, callback ) {
|
5223
|
-
if ( speed
|
5295
|
+
if ( speed || speed === 0) {
|
5224
5296
|
return this.animate( genFx("show", 3), speed, callback);
|
5225
5297
|
|
5226
5298
|
} else {
|
@@ -5264,7 +5336,7 @@ jQuery.fn.extend({
|
|
5264
5336
|
},
|
5265
5337
|
|
5266
5338
|
hide: function( speed, callback ) {
|
5267
|
-
if ( speed
|
5339
|
+
if ( speed || speed === 0 ) {
|
5268
5340
|
return this.animate( genFx("hide", 3), speed, callback);
|
5269
5341
|
|
5270
5342
|
} else {
|
@@ -5691,16 +5763,16 @@ if ( "getBoundingClientRect" in document.documentElement ) {
|
|
5691
5763
|
jQuery.fn.offset = function( options ) {
|
5692
5764
|
var elem = this[0];
|
5693
5765
|
|
5694
|
-
if ( !elem || !elem.ownerDocument ) {
|
5695
|
-
return null;
|
5696
|
-
}
|
5697
|
-
|
5698
5766
|
if ( options ) {
|
5699
5767
|
return this.each(function( i ) {
|
5700
5768
|
jQuery.offset.setOffset( this, options, i );
|
5701
5769
|
});
|
5702
5770
|
}
|
5703
5771
|
|
5772
|
+
if ( !elem || !elem.ownerDocument ) {
|
5773
|
+
return null;
|
5774
|
+
}
|
5775
|
+
|
5704
5776
|
if ( elem === elem.ownerDocument.body ) {
|
5705
5777
|
return jQuery.offset.bodyOffset( elem );
|
5706
5778
|
}
|
@@ -5717,16 +5789,16 @@ if ( "getBoundingClientRect" in document.documentElement ) {
|
|
5717
5789
|
jQuery.fn.offset = function( options ) {
|
5718
5790
|
var elem = this[0];
|
5719
5791
|
|
5720
|
-
if ( !elem || !elem.ownerDocument ) {
|
5721
|
-
return null;
|
5722
|
-
}
|
5723
|
-
|
5724
5792
|
if ( options ) {
|
5725
5793
|
return this.each(function( i ) {
|
5726
5794
|
jQuery.offset.setOffset( this, options, i );
|
5727
5795
|
});
|
5728
5796
|
}
|
5729
5797
|
|
5798
|
+
if ( !elem || !elem.ownerDocument ) {
|
5799
|
+
return null;
|
5800
|
+
}
|
5801
|
+
|
5730
5802
|
if ( elem === elem.ownerDocument.body ) {
|
5731
5803
|
return jQuery.offset.bodyOffset( elem );
|
5732
5804
|
}
|
@@ -5968,6 +6040,13 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
|
|
5968
6040
|
if ( !elem ) {
|
5969
6041
|
return size == null ? null : this;
|
5970
6042
|
}
|
6043
|
+
|
6044
|
+
if ( jQuery.isFunction( size ) ) {
|
6045
|
+
return this.each(function( i ) {
|
6046
|
+
var self = jQuery( this );
|
6047
|
+
self[ type ]( size.call( this, i, self[ type ]() ) );
|
6048
|
+
});
|
6049
|
+
}
|
5971
6050
|
|
5972
6051
|
return ("scrollTo" in elem && elem.document) ? // does it walk and quack like a window?
|
5973
6052
|
// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
|