Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge branch 'master' of git://github.com/jquery/jquery

Conflicts:
	src/ajax.js
  • Loading branch information...
commit e0cb424e2a854bf3872b460af40558fe70a71e83 2 parents 6244334 + fa80693
jaubourg authored
View
1  src/ajax.js
@@ -379,4 +379,3 @@ jQuery.extend( jQuery.ajax, {
// For backwards compatibility
jQuery.extend( jQuery.ajax );
-
View
2  src/attributes.js
@@ -9,7 +9,7 @@ var rclass = /[\n\t]/g,
jQuery.fn.extend({
attr: function( name, value ) {
- return access( this, name, value, true, jQuery.attr );
+ return jQuery.access( this, name, value, true, jQuery.attr );
},
removeAttr: function( name, fn ) {
View
87 src/core.js
@@ -1,3 +1,5 @@
+(function() {
+
// Define a local copy of jQuery
var jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
@@ -11,7 +13,7 @@ var jQuery = function( selector, context ) {
_$ = window.$,
// Use the correct document accordingly with window argument (sandbox)
- document = window.document,
+ //document = window.document,
// A central reference to the root jQuery(document)
rootjQuery,
@@ -699,6 +701,39 @@ jQuery.extend({
return proxy;
},
+ // Mutifunctional method to get and set values to a collection
+ // The value/s can be optionally by executed if its a function
+ access: function( elems, key, value, exec, fn, pass ) {
+ var length = elems.length;
+
+ // Setting many attributes
+ if ( typeof key === "object" ) {
+ for ( var k in key ) {
+ jQuery.access( elems, k, key[k], exec, fn, value );
+ }
+ return elems;
+ }
+
+ // Setting one attribute
+ if ( value !== undefined ) {
+ // Optionally, function values get executed if exec is true
+ exec = !pass && exec && jQuery.isFunction(value);
+
+ for ( var i = 0; i < length; i++ ) {
+ fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+ }
+
+ return elems;
+ }
+
+ // Getting an attribute
+ return length ? fn( elems[0], key ) : undefined;
+ },
+
+ now: function() {
+ return (new Date()).getTime();
+ },
+
// Use of jQuery.browser is frowned upon.
// More details: http://docs.jquery.com/Utilities/jQuery.browser
uaMatch: function( ua ) {
@@ -779,51 +814,7 @@ function doScrollCheck() {
jQuery.ready();
}
-function evalScript( i, elem ) {
- if ( elem.src ) {
- jQuery.ajax({
- url: elem.src,
- async: false,
- dataType: "script"
- });
- } else {
- jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
- }
-
- if ( elem.parentNode ) {
- elem.parentNode.removeChild( elem );
- }
-}
-
-// Mutifunctional method to get and set values to a collection
-// The value/s can be optionally by executed if its a function
-function access( elems, key, value, exec, fn, pass ) {
- var length = elems.length;
-
- // Setting many attributes
- if ( typeof key === "object" ) {
- for ( var k in key ) {
- access( elems, k, key[k], exec, fn, value );
- }
- return elems;
- }
-
- // Setting one attribute
- if ( value !== undefined ) {
- // Optionally, function values get executed if exec is true
- exec = !pass && exec && jQuery.isFunction(value);
-
- for ( var i = 0; i < length; i++ ) {
- fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
- }
-
- return elems;
- }
-
- // Getting an attribute
- return length ? fn( elems[0], key ) : undefined;
-}
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
-function now() {
- return (new Date()).getTime();
-}
+})();
View
2  src/css.js
@@ -21,7 +21,7 @@ var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
};
jQuery.fn.css = function( name, value ) {
- return access( this, name, value, true, function( elem, name, value ) {
+ return jQuery.access( this, name, value, true, function( elem, name, value ) {
if ( value === undefined ) {
return jQuery.curCSS( elem, name );
}
View
2  src/data.js
@@ -1,4 +1,4 @@
-var expando = "jQuery" + now(), uuid = 0, windowData = {};
+var expando = "jQuery" + jQuery.now(), uuid = 0, windowData = {};
jQuery.extend({
cache: {},
View
4 src/effects.js
@@ -320,7 +320,7 @@ jQuery.fx.prototype = {
// Start an animation from one number to another
custom: function( from, to, unit ) {
- this.startTime = now();
+ this.startTime = jQuery.now();
this.start = from;
this.end = to;
this.unit = unit || this.unit || "px";
@@ -366,7 +366,7 @@ jQuery.fx.prototype = {
// Each step of an animation
step: function( gotoEnd ) {
- var t = now(), done = true;
+ var t = jQuery.now(), done = true;
if ( gotoEnd || t >= this.options.duration + this.startTime ) {
this.now = this.end;
View
2  src/event.js
@@ -554,7 +554,7 @@ jQuery.Event = function( src ) {
// timeStamp is buggy for some events on Firefox(#3843)
// So we won't rely on the native value
- this.timeStamp = now();
+ this.timeStamp = jQuery.now();
// Mark it as fixed
this[ expando ] = true;
View
16 src/manipulation.js
@@ -584,3 +584,19 @@ jQuery.extend({
}
}
});
+
+function evalScript( i, elem ) {
+ if ( elem.src ) {
+ jQuery.ajax({
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+ } else {
+ jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+}
View
3  src/outro.js
@@ -1,4 +1 @@
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
-
})(window);
View
6 src/sizzle-jquery.js
@@ -2,6 +2,6 @@ jQuery.find = Sizzle;
jQuery.expr = Sizzle.selectors;
jQuery.expr[":"] = jQuery.expr.filters;
jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = getText;
-jQuery.isXMLDoc = isXML;
-jQuery.contains = contains;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
View
2  src/support.js
@@ -5,7 +5,7 @@
var root = document.documentElement,
script = document.createElement("script"),
div = document.createElement("div"),
- id = "script" + now();
+ id = "script" + jQuery.now();
div.style.display = "none";
div.innerHTML = " <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
View
2  src/transports/css.js
@@ -91,7 +91,7 @@ jQuery.xhr.bindTransport("css", function(s) {
});
var // Next css id
- cssPollingId = now(),
+ cssPollingId = jQuery.now(),
// Number of css being polled
cssPollingNb = 0,
View
2  src/transports/jsonp.js
@@ -1,4 +1,4 @@
-var jsc = now(),
+var jsc = jQuery.now(),
jsre = /\=\?(&|$)/;
// Default jsonp callback name
View
2  src/transports/xhr.js
@@ -143,7 +143,7 @@ jQuery.xhr.bindTransport(function(s) {
});
var // Next fake timer id
- xhrPollingId = now(),
+ xhrPollingId = jQuery.now(),
// Callbacks hashtable
xhrs = {},
View
64 src/traversing.js
@@ -1,37 +1,9 @@
var runtil = /Until$/,
rparentsprev = /^(?:parents|prevUntil|prevAll)/,
// Note: This RegExp should be improved, or likely pulled from Sizzle
- rmultiselector = /,/;
-
-// Implement the identical functionality for filter and not
-var winnow = function( elements, qualifier, keep ) {
- if ( jQuery.isFunction( qualifier ) ) {
- return jQuery.grep(elements, function( elem, i ) {
- var retVal = !!qualifier.call( elem, i, elem );
- return retVal === keep;
- });
-
- } else if ( qualifier.nodeType ) {
- return jQuery.grep(elements, function( elem, i ) {
- return (elem === qualifier) === keep;
- });
-
- } else if ( typeof qualifier === "string" ) {
- var filtered = jQuery.grep(elements, function( elem ) {
- return elem.nodeType === 1;
- });
-
- if ( isSimple.test( qualifier ) ) {
- return jQuery.filter(qualifier, filtered, !keep);
- } else {
- qualifier = jQuery.filter( qualifier, filtered );
- }
- }
-
- return jQuery.grep(elements, function( elem, i ) {
- return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
- });
-};
+ rmultiselector = /,/,
+ isSimple = /^.[^:#\[\.,]*$/,
+ slice = Array.prototype.slice;
jQuery.fn.extend({
find: function( selector ) {
@@ -269,3 +241,33 @@ jQuery.extend({
return r;
}
});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ var retVal = !!qualifier.call( elem, i, elem );
+ return retVal === keep;
+ });
+
+ } else if ( qualifier.nodeType ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ return (elem === qualifier) === keep;
+ });
+
+ } else if ( typeof qualifier === "string" ) {
+ var filtered = jQuery.grep(elements, function( elem ) {
+ return elem.nodeType === 1;
+ });
+
+ if ( isSimple.test( qualifier ) ) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter( qualifier, filtered );
+ }
+ }
+
+ return jQuery.grep(elements, function( elem, i ) {
+ return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
+ });
+};
View
4 src/xhr.js
@@ -87,7 +87,7 @@ jQuery.xhr = function( _native ) {
// Add anti-cache in url if needed
if ( s.cache === false ) {
- var ts = now(),
+ var ts = jQuery.now(),
// try replacing _= if it is there
ret = s.url.replace(rts, "$1_=" + ts + "$2");
@@ -778,7 +778,7 @@ jQuery.extend(jQuery.xhr, {
return;
}
- append = first ? Array.prototype.unshift : push;
+ append = Array.prototype[ first ? "unshift" : "push" ];
list = transports[dataType];
View
10 test/data/testrunner.js
@@ -1 +1,11 @@
jQuery.noConflict(); // Allow the test to run with other libs or jQuery's.
+
+// load testswarm agent
+(function() {
+ var url = window.location.search;
+ url = decodeURIComponent( url.slice( url.indexOf("swarmURL=") + 9 ) );
+ if ( !url || url.indexOf("http") !== 0 ) {
+ return;
+ }
+ document.write("<scr" + "ipt src='http://testswarm.com/js/inject.js?" + (new Date).getTime() + "'></scr" + "ipt>");
+})();
View
59 test/index.html
@@ -6,23 +6,48 @@
<link rel="Stylesheet" media="screen" href="qunit/qunit/qunit.css" />
<link rel="Stylesheet" media="screen" href="data/testsuite.css" />
<!-- Includes -->
- <script type="text/javascript" src="data/testinit.js"></script>
- <script type="text/javascript" src="../dist/jquery.js"></script>
- <script type="text/javascript" src="qunit/qunit/qunit.js"></script>
- <script type="text/javascript" src="data/testrunner.js"></script>
- <script type="text/javascript" src="unit/core.js"></script>
- <script type="text/javascript" src="unit/data.js"></script>
- <script type="text/javascript" src="unit/queue.js"></script>
- <script type="text/javascript" src="unit/attributes.js"></script>
- <script type="text/javascript" src="unit/css.js"></script>
- <script type="text/javascript" src="unit/traversing.js"></script>
- <script type="text/javascript" src="unit/manipulation.js"></script>
- <script type="text/javascript" src="unit/dimensions.js"></script>
- <script type="text/javascript" src="unit/selector.js"></script>
- <script type="text/javascript" src="unit/event.js"></script>
- <script type="text/javascript" src="unit/ajax.js"></script>
- <script type="text/javascript" src="unit/effects.js"></script>
- <script type="text/javascript" src="unit/offset.js"></script>
+ <script src="data/testinit.js"></script>
+
+ <script src="../src/core.js"></script>
+ <script src="../src/support.js"></script>
+ <script src="../src/data.js"></script>
+ <script src="../src/queue.js"></script>
+ <script src="../src/attributes.js"></script>
+ <script src="../src/event.js"></script>
+ <script src="../src/sizzle/sizzle.js"></script>
+ <script src="../src/sizzle-jquery.js"></script>
+ <script src="../src/traversing.js"></script>
+ <script src="../src/manipulation.js"></script>
+ <script src="../src/css.js"></script>
+ <script src="../src/ajax.js"></script>
+ <script src="../src/xhr.js"></script>
+ <script src="../src/transports/css.js"></script>
+ <script src="../src/transports/image.js"></script>
+ <script src="../src/transports/jsonp.js"></script>
+ <script src="../src/transports/jsonp-over-iframe.js"></script>
+ <script src="../src/transports/script.js"></script>
+ <script src="../src/transports/xhr.js"></script>
+ <script src="../src/transports/xdr.js"></script>
+ <script src="../src/effects.js"></script>
+ <script src="../src/offset.js"></script>
+ <script src="../src/dimensions.js"></script>
+
+ <script src="qunit/qunit/qunit.js"></script>
+ <script src="data/testrunner.js"></script>
+
+ <script src="unit/core.js"></script>
+ <script src="unit/data.js"></script>
+ <script src="unit/queue.js"></script>
+ <script src="unit/attributes.js"></script>
+ <script src="unit/event.js"></script>
+ <script src="unit/selector.js"></script>
+ <script src="unit/traversing.js"></script>
+ <script src="unit/manipulation.js"></script>
+ <script src="unit/css.js"></script>
+ <script src="unit/ajax.js"></script>
+ <script src="unit/effects.js"></script>
+ <script src="unit/offset.js"></script>
+ <script src="unit/dimensions.js"></script>
</head>
<body id="body">
View
12 test/unit/attributes.js
@@ -482,8 +482,10 @@ test("addClass(Function) with incoming value", function() {
});
div.addClass(function(i, val) {
- equals( val, old[i], "Make sure the incoming value is correct." );
- return "test";
+ if ( this.id !== "_firebugConsole" ) {
+ equals( val, old[i], "Make sure the incoming value is correct." );
+ return "test";
+ }
});
var pass = true;
@@ -553,8 +555,10 @@ test("removeClass(Function) with incoming value", function() {
});
$divs.removeClass(function(i, val) {
- equals( val, old[i], "Make sure the incoming value is correct." );
- return "test";
+ if ( this.id !== "_firebugConsole" ) {
+ equals( val, old[i], "Make sure the incoming value is correct." );
+ return "test";
+ }
});
ok( !$divs.is('.test'), "Remove Class" );
View
2  test/unit/dimensions.js
@@ -26,7 +26,7 @@ function testWidth( val ) {
$div.css({ display: "", border: "", padding: "" });
- jQuery("#nothiddendivchild").css({ padding: "3px", border: "2px solid #fff" });
+ jQuery("#nothiddendivchild").css({ width: 20, padding: "3px", border: "2px solid #fff" });
equals(jQuery("#nothiddendivchild").width(), 20, "Test child width with border and padding");
jQuery("#nothiddendiv, #nothiddendivchild").css({ border: "", padding: "", width: "" });
Please sign in to comment.
Something went wrong with that request. Please try again.