etooled the jQuery constructor, makes it work better for embedding (Bug #1585). Also took the opportunity to do some renaming in the constructor and init.
This commit is contained in:
parent
d5f2129ac4
commit
9c2c47d7c0
1 changed files with 19 additions and 20 deletions
39
src/core.js
39
src/core.js
|
@ -13,12 +13,11 @@
|
||||||
if ( typeof jQuery != "undefined" )
|
if ( typeof jQuery != "undefined" )
|
||||||
var _jQuery = jQuery;
|
var _jQuery = jQuery;
|
||||||
|
|
||||||
var jQuery = window.jQuery = function(a,c) {
|
var jQuery = window.jQuery = function(selector, context) {
|
||||||
// If the context is global, return a new object
|
// If the context is a namespace object, return a new object
|
||||||
if ( window == this || !this.init )
|
return this instanceof jQuery ?
|
||||||
return new jQuery(a,c);
|
this.init(selector, context) :
|
||||||
|
new jQuery(selector, context);
|
||||||
return this.init(a,c);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Map over the $ in case of overwrite
|
// Map over the $ in case of overwrite
|
||||||
|
@ -31,17 +30,17 @@ window.$ = jQuery;
|
||||||
var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
|
var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;
|
||||||
|
|
||||||
jQuery.fn = jQuery.prototype = {
|
jQuery.fn = jQuery.prototype = {
|
||||||
init: function(a,c) {
|
init: function(selector, context) {
|
||||||
// Make sure that a selection was provided
|
// Make sure that a selection was provided
|
||||||
a = a || document;
|
selector = selector || document;
|
||||||
|
|
||||||
// Handle HTML strings
|
// Handle HTML strings
|
||||||
if ( typeof a == "string" ) {
|
if ( typeof selector == "string" ) {
|
||||||
var m = quickExpr.exec(a);
|
var m = quickExpr.exec(selector);
|
||||||
if ( m && (m[1] || !c) ) {
|
if ( m && (m[1] || !context) ) {
|
||||||
// HANDLE: $(html) -> $(array)
|
// HANDLE: $(html) -> $(array)
|
||||||
if ( m[1] )
|
if ( m[1] )
|
||||||
a = jQuery.clean( [ m[1] ], c );
|
selector = jQuery.clean( [ m[1] ], context );
|
||||||
|
|
||||||
// HANDLE: $("#id")
|
// HANDLE: $("#id")
|
||||||
else {
|
else {
|
||||||
|
@ -50,35 +49,35 @@ jQuery.fn = jQuery.prototype = {
|
||||||
// Handle the case where IE and Opera return items
|
// Handle the case where IE and Opera return items
|
||||||
// by name instead of ID
|
// by name instead of ID
|
||||||
if ( tmp.id != m[3] )
|
if ( tmp.id != m[3] )
|
||||||
return jQuery().find( a );
|
return jQuery().find( selector );
|
||||||
else {
|
else {
|
||||||
this[0] = tmp;
|
this[0] = tmp;
|
||||||
this.length = 1;
|
this.length = 1;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
a = [];
|
selector = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// HANDLE: $(expr)
|
// HANDLE: $(expr)
|
||||||
} else
|
} else
|
||||||
return new jQuery( c ).find( a );
|
return new jQuery( context ).find( selector );
|
||||||
|
|
||||||
// HANDLE: $(function)
|
// HANDLE: $(function)
|
||||||
// Shortcut for document ready
|
// Shortcut for document ready
|
||||||
} else if ( jQuery.isFunction(a) )
|
} else if ( jQuery.isFunction(selector) )
|
||||||
return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
|
return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( selector );
|
||||||
|
|
||||||
return this.setArray(
|
return this.setArray(
|
||||||
// HANDLE: $(array)
|
// HANDLE: $(array)
|
||||||
a.constructor == Array && a ||
|
selector.constructor == Array && selector ||
|
||||||
|
|
||||||
// HANDLE: $(arraylike)
|
// HANDLE: $(arraylike)
|
||||||
// Watch for when an array-like object is passed as the selector
|
// Watch for when an array-like object is passed as the selector
|
||||||
(a.jquery || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) ||
|
(selector.jquery || selector.length && selector != window && !selector.nodeType && selector[0] != undefined && selector[0].nodeType) && jQuery.makeArray( selector ) ||
|
||||||
|
|
||||||
// HANDLE: $(*)
|
// HANDLE: $(*)
|
||||||
[ a ] );
|
[ selector ] );
|
||||||
},
|
},
|
||||||
|
|
||||||
jquery: "@VERSION",
|
jquery: "@VERSION",
|
||||||
|
|
Loading…
Reference in a new issue