jquery-source 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  module Jquery
2
2
  module Source
3
- VERSION = "1.3.0"
3
+ VERSION = "1.3.1"
4
4
  end
5
5
  end
@@ -1,13 +1,13 @@
1
1
  /*!
2
- * jQuery JavaScript Library v1.3
2
+ * jQuery JavaScript Library v1.3.1
3
3
  * http://jquery.com/
4
4
  *
5
5
  * Copyright (c) 2009 John Resig
6
6
  * Dual licensed under the MIT and GPL licenses.
7
7
  * http://docs.jquery.com/License
8
8
  *
9
- * Date: 2009-01-13 12:50:31 -0500 (Tue, 13 Jan 2009)
10
- * Revision: 6104
9
+ * Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009)
10
+ * Revision: 6158
11
11
  */
12
12
  (function(){
13
13
 
@@ -60,20 +60,16 @@ jQuery.fn = jQuery.prototype = {
60
60
  else {
61
61
  var elem = document.getElementById( match[3] );
62
62
 
63
- // Make sure an element was located
64
- if ( elem ){
65
- // Handle the case where IE and Opera return items
66
- // by name instead of ID
67
- if ( elem.id != match[3] )
68
- return jQuery().find( selector );
69
-
70
- // Otherwise, we inject the element directly into the jQuery object
71
- var ret = jQuery( elem );
72
- ret.context = document;
73
- ret.selector = selector;
74
- return ret;
75
- }
76
- selector = [];
63
+ // Handle the case where IE and Opera return items
64
+ // by name instead of ID
65
+ if ( elem && elem.id != match[3] )
66
+ return jQuery().find( selector );
67
+
68
+ // Otherwise, we inject the element directly into the jQuery object
69
+ var ret = jQuery( elem || [] );
70
+ ret.context = document;
71
+ ret.selector = selector;
72
+ return ret;
77
73
  }
78
74
 
79
75
  // HANDLE: $(expr, [context])
@@ -99,7 +95,7 @@ jQuery.fn = jQuery.prototype = {
99
95
  selector: "",
100
96
 
101
97
  // The current version of jQuery being used
102
- jquery: "1.3",
98
+ jquery: "1.3.1",
103
99
 
104
100
  // The number of elements contained in the matched element set
105
101
  size: function() {
@@ -634,8 +630,8 @@ jQuery.extend({
634
630
 
635
631
  // check if an element is in a (or is an) XML document
636
632
  isXMLDoc: function( elem ) {
637
- return elem.documentElement && !elem.body ||
638
- elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
633
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
634
+ !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );
639
635
  },
640
636
 
641
637
  // Evalulates a script in a global context
@@ -725,7 +721,7 @@ jQuery.extend({
725
721
 
726
722
  // internal only, use hasClass("class")
727
723
  has: function( elem, className ) {
728
- return jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
724
+ return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1;
729
725
  }
730
726
  },
731
727
 
@@ -999,9 +995,11 @@ jQuery.extend({
999
995
  var attributeNode = elem.getAttributeNode( "tabIndex" );
1000
996
  return attributeNode && attributeNode.specified
1001
997
  ? attributeNode.value
1002
- : elem.nodeName.match(/^(a|area|button|input|object|select|textarea)$/i)
998
+ : elem.nodeName.match(/(button|input|object|select|textarea)/i)
1003
999
  ? 0
1004
- : undefined;
1000
+ : elem.nodeName.match(/^(a|area)$/i) && elem.href
1001
+ ? 0
1002
+ : undefined;
1005
1003
  }
1006
1004
 
1007
1005
  return elem[ name ];
@@ -1397,14 +1395,14 @@ jQuery.fn.extend({
1397
1395
  });
1398
1396
  }
1399
1397
  });/*!
1400
- * Sizzle CSS Selector Engine - v0.9.1
1398
+ * Sizzle CSS Selector Engine - v0.9.3
1401
1399
  * Copyright 2009, The Dojo Foundation
1402
1400
  * Released under the MIT, BSD, and GPL Licenses.
1403
1401
  * More information: http://sizzlejs.com/
1404
1402
  */
1405
1403
  (function(){
1406
1404
 
1407
- var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|[^[\]]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,
1405
+ var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,
1408
1406
  done = 0,
1409
1407
  toString = Object.prototype.toString;
1410
1408
 
@@ -1433,40 +1431,27 @@ var Sizzle = function(selector, context, results, seed) {
1433
1431
  }
1434
1432
  }
1435
1433
 
1436
- if ( parts.length > 1 && Expr.match.POS.exec( selector ) ) {
1434
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
1437
1435
  if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
1438
- var later = "", match;
1439
-
1440
- // Position selectors must be done after the filter
1441
- while ( (match = Expr.match.POS.exec( selector )) ) {
1442
- later += match[0];
1443
- selector = selector.replace( Expr.match.POS, "" );
1444
- }
1445
-
1446
- set = Sizzle.filter( later, Sizzle( /\s$/.test(selector) ? selector + "*" : selector, context ) );
1436
+ set = posProcess( parts[0] + parts[1], context );
1447
1437
  } else {
1448
1438
  set = Expr.relative[ parts[0] ] ?
1449
1439
  [ context ] :
1450
1440
  Sizzle( parts.shift(), context );
1451
1441
 
1452
1442
  while ( parts.length ) {
1453
- var tmpSet = [];
1454
-
1455
1443
  selector = parts.shift();
1444
+
1456
1445
  if ( Expr.relative[ selector ] )
1457
1446
  selector += parts.shift();
1458
1447
 
1459
- for ( var i = 0, l = set.length; i < l; i++ ) {
1460
- Sizzle( selector, set[i], tmpSet );
1461
- }
1462
-
1463
- set = tmpSet;
1448
+ set = posProcess( selector, set );
1464
1449
  }
1465
1450
  }
1466
1451
  } else {
1467
1452
  var ret = seed ?
1468
1453
  { expr: parts.pop(), set: makeArray(seed) } :
1469
- Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context );
1454
+ Sizzle.find( parts.pop(), parts.length === 1 && context.parentNode ? context.parentNode : context, isXML(context) );
1470
1455
  set = Sizzle.filter( ret.expr, ret.set );
1471
1456
 
1472
1457
  if ( parts.length > 0 ) {
@@ -1531,7 +1516,7 @@ Sizzle.matches = function(expr, set){
1531
1516
  return Sizzle(expr, null, null, set);
1532
1517
  };
1533
1518
 
1534
- Sizzle.find = function(expr, context){
1519
+ Sizzle.find = function(expr, context, isXML){
1535
1520
  var set, match;
1536
1521
 
1537
1522
  if ( !expr ) {
@@ -1546,7 +1531,7 @@ Sizzle.find = function(expr, context){
1546
1531
 
1547
1532
  if ( left.substr( left.length - 1 ) !== "\\" ) {
1548
1533
  match[1] = (match[1] || "").replace(/\\/g, "");
1549
- set = Expr.find[ type ]( match, context );
1534
+ set = Expr.find[ type ]( match, context, isXML );
1550
1535
  if ( set != null ) {
1551
1536
  expr = expr.replace( Expr.match[ type ], "" );
1552
1537
  break;
@@ -1568,7 +1553,7 @@ Sizzle.filter = function(expr, set, inplace, not){
1568
1553
  while ( expr && set.length ) {
1569
1554
  for ( var type in Expr.filter ) {
1570
1555
  if ( (match = Expr.match[ type ].exec( expr )) != null ) {
1571
- var filter = Expr.filter[ type ], goodArray = null, goodPos = 0, found, item;
1556
+ var filter = Expr.filter[ type ], found, item;
1572
1557
  anyFound = false;
1573
1558
 
1574
1559
  if ( curLoop == result ) {
@@ -1582,26 +1567,13 @@ Sizzle.filter = function(expr, set, inplace, not){
1582
1567
  anyFound = found = true;
1583
1568
  } else if ( match === true ) {
1584
1569
  continue;
1585
- } else if ( match[0] === true ) {
1586
- goodArray = [];
1587
- var last = null, elem;
1588
- for ( var i = 0; (elem = curLoop[i]) !== undefined; i++ ) {
1589
- if ( elem && last !== elem ) {
1590
- goodArray.push( elem );
1591
- last = elem;
1592
- }
1593
- }
1594
1570
  }
1595
1571
  }
1596
1572
 
1597
1573
  if ( match ) {
1598
- for ( var i = 0; (item = curLoop[i]) !== undefined; i++ ) {
1574
+ for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
1599
1575
  if ( item ) {
1600
- if ( goodArray && item != goodArray[goodPos] ) {
1601
- goodPos++;
1602
- }
1603
-
1604
- found = filter( item, match, goodPos, goodArray );
1576
+ found = filter( item, match, i, curLoop );
1605
1577
  var pass = not ^ !!found;
1606
1578
 
1607
1579
  if ( inplace && found != null ) {
@@ -1739,14 +1711,16 @@ var Expr = Sizzle.selectors = {
1739
1711
  }
1740
1712
  },
1741
1713
  find: {
1742
- ID: function(match, context){
1743
- if ( context.getElementById ) {
1714
+ ID: function(match, context, isXML){
1715
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
1744
1716
  var m = context.getElementById(match[1]);
1745
1717
  return m ? [m] : [];
1746
1718
  }
1747
1719
  },
1748
- NAME: function(match, context){
1749
- return context.getElementsByName ? context.getElementsByName(match[1]) : null;
1720
+ NAME: function(match, context, isXML){
1721
+ if ( typeof context.getElementsByName !== "undefined" && !isXML ) {
1722
+ return context.getElementsByName(match[1]);
1723
+ }
1750
1724
  },
1751
1725
  TAG: function(match, context){
1752
1726
  return context.getElementsByTagName(match[1]);
@@ -1756,12 +1730,15 @@ var Expr = Sizzle.selectors = {
1756
1730
  CLASS: function(match, curLoop, inplace, result, not){
1757
1731
  match = " " + match[1].replace(/\\/g, "") + " ";
1758
1732
 
1759
- for ( var i = 0; curLoop[i]; i++ ) {
1760
- if ( not ^ (" " + curLoop[i].className + " ").indexOf(match) >= 0 ) {
1761
- if ( !inplace )
1762
- result.push( curLoop[i] );
1763
- } else if ( inplace ) {
1764
- curLoop[i] = false;
1733
+ var elem;
1734
+ for ( var i = 0; (elem = curLoop[i]) != null; i++ ) {
1735
+ if ( elem ) {
1736
+ if ( not ^ (" " + elem.className + " ").indexOf(match) >= 0 ) {
1737
+ if ( !inplace )
1738
+ result.push( elem );
1739
+ } else if ( inplace ) {
1740
+ curLoop[i] = false;
1741
+ }
1765
1742
  }
1766
1743
  }
1767
1744
 
@@ -1771,8 +1748,8 @@ var Expr = Sizzle.selectors = {
1771
1748
  return match[1].replace(/\\/g, "");
1772
1749
  },
1773
1750
  TAG: function(match, curLoop){
1774
- for ( var i = 0; !curLoop[i]; i++ ){}
1775
- return isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
1751
+ for ( var i = 0; curLoop[i] === false; i++ ){}
1752
+ return curLoop[i] && isXML(curLoop[i]) ? match[1] : match[1].toUpperCase();
1776
1753
  },
1777
1754
  CHILD: function(match){
1778
1755
  if ( match[1] == "nth" ) {
@@ -1792,7 +1769,7 @@ var Expr = Sizzle.selectors = {
1792
1769
  return match;
1793
1770
  },
1794
1771
  ATTR: function(match){
1795
- var name = match[1];
1772
+ var name = match[1].replace(/\\/g, "");
1796
1773
 
1797
1774
  if ( Expr.attrMap[name] ) {
1798
1775
  match[1] = Expr.attrMap[name];
@@ -1916,7 +1893,7 @@ var Expr = Sizzle.selectors = {
1916
1893
  CHILD: function(elem, match){
1917
1894
  var type = match[1], parent = elem.parentNode;
1918
1895
 
1919
- var doneName = "child" + parent.childNodes.length;
1896
+ var doneName = match[0];
1920
1897
 
1921
1898
  if ( parent && (!parent[ doneName ] || !elem.nodeIndex) ) {
1922
1899
  var count = 1;
@@ -1985,7 +1962,7 @@ var Expr = Sizzle.selectors = {
1985
1962
  ATTR: function(elem, match){
1986
1963
  var result = Expr.attrHandle[ match[1] ] ? Expr.attrHandle[ match[1] ]( elem ) : elem[ match[1] ] || elem.getAttribute( match[1] ), value = result + "", type = match[2], check = match[4];
1987
1964
  return result == null ?
1988
- false :
1965
+ type === "!=" :
1989
1966
  type === "=" ?
1990
1967
  value === check :
1991
1968
  type === "*=" ?
@@ -2014,6 +1991,8 @@ var Expr = Sizzle.selectors = {
2014
1991
  }
2015
1992
  };
2016
1993
 
1994
+ var origPOS = Expr.match.POS;
1995
+
2017
1996
  for ( var type in Expr.match ) {
2018
1997
  Expr.match[ type ] = RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
2019
1998
  }
@@ -2072,15 +2051,15 @@ try {
2072
2051
  // The workaround has to do additional checks after a getElementById
2073
2052
  // Which slows things down for other browsers (hence the branching)
2074
2053
  if ( !!document.getElementById( id ) ) {
2075
- Expr.find.ID = function(match, context){
2076
- if ( context.getElementById ) {
2054
+ Expr.find.ID = function(match, context, isXML){
2055
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
2077
2056
  var m = context.getElementById(match[1]);
2078
- return m ? m.id === match[1] || m.getAttributeNode && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
2057
+ return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
2079
2058
  }
2080
2059
  };
2081
2060
 
2082
2061
  Expr.filter.ID = function(elem, match){
2083
- var node = elem.getAttributeNode && elem.getAttributeNode("id");
2062
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
2084
2063
  return elem.nodeType === 1 && node && node.nodeValue === match;
2085
2064
  };
2086
2065
  }
@@ -2120,7 +2099,7 @@ try {
2120
2099
 
2121
2100
  // Check to see if an attribute returns normalized href attributes
2122
2101
  div.innerHTML = "<a href='#'></a>";
2123
- if ( div.firstChild.getAttribute("href") !== "#" ) {
2102
+ if ( div.firstChild && div.firstChild.getAttribute("href") !== "#" ) {
2124
2103
  Expr.attrHandle.href = function(elem){
2125
2104
  return elem.getAttribute("href", 2);
2126
2105
  };
@@ -2128,12 +2107,21 @@ try {
2128
2107
  })();
2129
2108
 
2130
2109
  if ( document.querySelectorAll ) (function(){
2131
- var oldSizzle = Sizzle;
2110
+ var oldSizzle = Sizzle, div = document.createElement("div");
2111
+ div.innerHTML = "<p class='TEST'></p>";
2112
+
2113
+ // Safari can't handle uppercase or unicode characters when
2114
+ // in quirks mode.
2115
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
2116
+ return;
2117
+ }
2132
2118
 
2133
2119
  Sizzle = function(query, context, extra, seed){
2134
2120
  context = context || document;
2135
2121
 
2136
- if ( !seed && context.nodeType === 9 ) {
2122
+ // Only use querySelectorAll on non-XML documents
2123
+ // (ID selectors don't work in non-HTML documents)
2124
+ if ( !seed && context.nodeType === 9 && !isXML(context) ) {
2137
2125
  try {
2138
2126
  return makeArray( context.querySelectorAll(query), extra );
2139
2127
  } catch(e){}
@@ -2148,7 +2136,7 @@ if ( document.querySelectorAll ) (function(){
2148
2136
  Sizzle.matches = oldSizzle.matches;
2149
2137
  })();
2150
2138
 
2151
- if ( document.documentElement.getElementsByClassName ) {
2139
+ if ( document.getElementsByClassName && document.documentElement.getElementsByClassName ) {
2152
2140
  Expr.order.splice(1, 0, "CLASS");
2153
2141
  Expr.find.CLASS = function(match, context) {
2154
2142
  return context.getElementsByClassName(match[1]);
@@ -2229,8 +2217,28 @@ var contains = document.compareDocumentPosition ? function(a, b){
2229
2217
  };
2230
2218
 
2231
2219
  var isXML = function(elem){
2232
- return elem.documentElement && !elem.body ||
2233
- elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
2220
+ return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" ||
2221
+ !!elem.ownerDocument && isXML( elem.ownerDocument );
2222
+ };
2223
+
2224
+ var posProcess = function(selector, context){
2225
+ var tmpSet = [], later = "", match,
2226
+ root = context.nodeType ? [context] : context;
2227
+
2228
+ // Position selectors must be done after the filter
2229
+ // And so must :not(positional) so we move all PSEUDOs to the end
2230
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
2231
+ later += match[0];
2232
+ selector = selector.replace( Expr.match.PSEUDO, "" );
2233
+ }
2234
+
2235
+ selector = Expr.relative[selector] ? selector + "*" : selector;
2236
+
2237
+ for ( var i = 0, l = root.length; i < l; i++ ) {
2238
+ Sizzle( selector, root[i], tmpSet );
2239
+ }
2240
+
2241
+ return Sizzle.filter( later, tmpSet );
2234
2242
  };
2235
2243
 
2236
2244
  // EXPOSE
@@ -2681,13 +2689,13 @@ jQuery.Event = function( src ){
2681
2689
  if( src && src.type ){
2682
2690
  this.originalEvent = src;
2683
2691
  this.type = src.type;
2684
- this.timeStamp = src.timeStamp;
2685
2692
  // Event type
2686
2693
  }else
2687
2694
  this.type = src;
2688
2695
 
2689
- if( !this.timeStamp )
2690
- this.timeStamp = now();
2696
+ // timeStamp is buggy for some events on Firefox(#3843)
2697
+ // So we won't rely on the native value
2698
+ this.timeStamp = now();
2691
2699
 
2692
2700
  // Mark it as fixed
2693
2701
  this[expando] = true;
@@ -2876,9 +2884,8 @@ function liveHandler( event ){
2876
2884
  });
2877
2885
 
2878
2886
  jQuery.each(elems, function(){
2879
- if ( !event.isImmediatePropagationStopped() &&
2880
- this.fn.call(this.elem, event, this.fn.data) === false )
2881
- stop = false;
2887
+ if ( this.fn.call(this.elem, event, this.fn.data) === false )
2888
+ stop = false;
2882
2889
  });
2883
2890
 
2884
2891
  return stop;
@@ -2942,7 +2949,7 @@ function bindReady(){
2942
2949
 
2943
2950
  // If IE and not an iframe
2944
2951
  // continually check to see if the document is ready
2945
- if ( document.documentElement.doScroll && !window.frameElement ) (function(){
2952
+ if ( document.documentElement.doScroll && typeof window.frameElement === "undefined" ) (function(){
2946
2953
  if ( jQuery.isReady ) return;
2947
2954
 
2948
2955
  try {
@@ -3477,6 +3484,9 @@ jQuery.extend({
3477
3484
  // Fire the complete handlers
3478
3485
  complete();
3479
3486
 
3487
+ if ( isTimeout )
3488
+ xhr.abort();
3489
+
3480
3490
  // Stop memory leaks
3481
3491
  if ( s.async )
3482
3492
  xhr = null;
@@ -3491,14 +3501,8 @@ jQuery.extend({
3491
3501
  if ( s.timeout > 0 )
3492
3502
  setTimeout(function(){
3493
3503
  // Check to see if the request is still happening
3494
- if ( xhr ) {
3495
- if( !requestDone )
3496
- onreadystatechange( "timeout" );
3497
-
3498
- // Cancel the request
3499
- if ( xhr )
3500
- xhr.abort();
3501
- }
3504
+ if ( xhr && !requestDone )
3505
+ onreadystatechange( "timeout" );
3502
3506
  }, s.timeout);
3503
3507
  }
3504
3508
 
@@ -3637,6 +3641,7 @@ jQuery.extend({
3637
3641
 
3638
3642
  });
3639
3643
  var elemdisplay = {},
3644
+ timerId,
3640
3645
  fxAttrs = [
3641
3646
  // height animations
3642
3647
  [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
@@ -3859,7 +3864,6 @@ jQuery.extend({
3859
3864
  },
3860
3865
 
3861
3866
  timers: [],
3862
- timerId: null,
3863
3867
 
3864
3868
  fx: function( elem, options, prop ){
3865
3869
  this.options = options;
@@ -3911,10 +3915,8 @@ jQuery.fx.prototype = {
3911
3915
 
3912
3916
  t.elem = this.elem;
3913
3917
 
3914
- jQuery.timers.push(t);
3915
-
3916
- if ( t() && jQuery.timerId == null ) {
3917
- jQuery.timerId = setInterval(function(){
3918
+ if ( t() && jQuery.timers.push(t) == 1 ) {
3919
+ timerId = setInterval(function(){
3918
3920
  var timers = jQuery.timers;
3919
3921
 
3920
3922
  for ( var i = 0; i < timers.length; i++ )
@@ -3922,8 +3924,7 @@ jQuery.fx.prototype = {
3922
3924
  timers.splice(i--, 1);
3923
3925
 
3924
3926
  if ( !timers.length ) {
3925
- clearInterval( jQuery.timerId );
3926
- jQuery.timerId = null;
3927
+ clearInterval( timerId );
3927
3928
  }
3928
3929
  }, 13);
3929
3930
  }
@@ -3989,11 +3990,10 @@ jQuery.fx.prototype = {
3989
3990
  if ( this.options.hide || this.options.show )
3990
3991
  for ( var p in this.options.curAnim )
3991
3992
  jQuery.attr(this.elem.style, p, this.options.orig[p]);
3992
- }
3993
-
3994
- if ( done )
3993
+
3995
3994
  // Execute the complete function
3996
3995
  this.options.complete.call( this.elem );
3996
+ }
3997
3997
 
3998
3998
  return false;
3999
3999
  } else {
@@ -4087,7 +4087,7 @@ jQuery.offset = {
4087
4087
  initialize: function() {
4088
4088
  if ( this.initialized ) return;
4089
4089
  var body = document.body, container = document.createElement('div'), innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop = body.style.marginTop,
4090
- html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"cellpadding="0"cellspacing="0"><tr><td></td></tr></table>';
4090
+ html = '<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
4091
4091
 
4092
4092
  rules = { position: 'absolute', top: 0, left: 0, margin: 0, border: 0, width: '1px', height: '1px', visibility: 'hidden' };
4093
4093
  for ( prop in rules ) container.style[prop] = rules[prop];
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: jquery-source
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.3.0
5
+ version: 1.3.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Daniel X. Moore