mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Interim take on cross-module variables, closes gh-817.
This commit is contained in:
parent
46d680458b
commit
a101e81bde
@ -11,7 +11,6 @@ var r20 = /%20/g,
|
||||
rquery = /\?/,
|
||||
rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
|
||||
rselectTextarea = /^(?:select|textarea)/i,
|
||||
rspacesAjax = /\s+/,
|
||||
rts = /([?&])_=[^&]*/,
|
||||
rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
|
||||
|
||||
@ -72,7 +71,7 @@ function addToPrefiltersOrTransports( structure ) {
|
||||
}
|
||||
|
||||
if ( jQuery.isFunction( func ) ) {
|
||||
var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
|
||||
var dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ),
|
||||
i = 0,
|
||||
length = dataTypes.length,
|
||||
dataType,
|
||||
@ -613,7 +612,7 @@ jQuery.extend({
|
||||
s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
|
||||
|
||||
// Extract dataTypes list
|
||||
s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
|
||||
s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace );
|
||||
|
||||
// Determine if a cross-domain request is in order
|
||||
if ( s.crossDomain == null ) {
|
||||
|
@ -1,5 +1,4 @@
|
||||
var rclass = /[\n\t\r]/g,
|
||||
rspace = /\s+/,
|
||||
rreturn = /\r/g,
|
||||
rtype = /^(?:button|input)$/i,
|
||||
rfocusable = /^(?:button|input|object|select|textarea)$/i,
|
||||
@ -45,7 +44,7 @@ jQuery.fn.extend({
|
||||
}
|
||||
|
||||
if ( value && typeof value === "string" ) {
|
||||
classNames = value.split( rspace );
|
||||
classNames = value.split( core_rspace );
|
||||
|
||||
for ( i = 0, l = this.length; i < l; i++ ) {
|
||||
elem = this[ i ];
|
||||
@ -81,7 +80,7 @@ jQuery.fn.extend({
|
||||
}
|
||||
|
||||
if ( (value && typeof value === "string") || value === undefined ) {
|
||||
classNames = ( value || "" ).split( rspace );
|
||||
classNames = ( value || "" ).split( core_rspace );
|
||||
|
||||
for ( i = 0, l = this.length; i < l; i++ ) {
|
||||
elem = this[ i ];
|
||||
@ -121,7 +120,7 @@ jQuery.fn.extend({
|
||||
i = 0,
|
||||
self = jQuery( this ),
|
||||
state = stateVal,
|
||||
classNames = value.split( rspace );
|
||||
classNames = value.split( core_rspace );
|
||||
|
||||
while ( (className = classNames[ i++ ]) ) {
|
||||
// check each className given, space seperated list
|
||||
@ -359,7 +358,7 @@ jQuery.extend({
|
||||
value = value.toLowerCase();
|
||||
}
|
||||
|
||||
attrNames = value.split( rspace );
|
||||
attrNames = value.split( core_rspace );
|
||||
l = attrNames.length;
|
||||
|
||||
for ( ; i < l; i++ ) {
|
||||
|
@ -4,7 +4,7 @@ var optionsCache = {};
|
||||
// Convert String-formatted options into Object-formatted ones and store in cache
|
||||
function createOptions( options ) {
|
||||
var object = optionsCache[ options ] = {};
|
||||
jQuery.each( options.split( /\s+/ ), function( _, flag ) {
|
||||
jQuery.each( options.split( core_rspace ), function( _, flag ) {
|
||||
object[ flag ] = true;
|
||||
});
|
||||
return object;
|
||||
|
106
src/core.js
106
src/core.js
@ -1,21 +1,8 @@
|
||||
// Use the correct document accordingly with window argument (sandbox)
|
||||
var document = window.document,
|
||||
navigator = window.navigator,
|
||||
var
|
||||
// Use the correct document accordingly with window argument (sandbox)
|
||||
document = window.document,
|
||||
location = window.location,
|
||||
|
||||
// Save a reference to some core methods
|
||||
toString = Object.prototype.toString,
|
||||
hasOwn = Object.prototype.hasOwnProperty,
|
||||
push = Array.prototype.push,
|
||||
slice = Array.prototype.slice,
|
||||
trim = String.prototype.trim,
|
||||
indexOf = Array.prototype.indexOf,
|
||||
|
||||
// Define a local copy of jQuery
|
||||
jQuery = function( selector, context ) {
|
||||
// The jQuery object is actually just the init constructor 'enhanced'
|
||||
return new jQuery.fn.init( selector, context, rootjQuery );
|
||||
},
|
||||
navigator = window.navigator,
|
||||
|
||||
// Map over jQuery in case of overwrite
|
||||
_jQuery = window.jQuery,
|
||||
@ -23,38 +10,57 @@ var document = window.document,
|
||||
// Map over the $ in case of overwrite
|
||||
_$ = window.$,
|
||||
|
||||
// Save a reference to some core methods
|
||||
core_push = Array.prototype.push,
|
||||
core_slice = Array.prototype.slice,
|
||||
core_indexOf = Array.prototype.indexOf,
|
||||
core_toString = Object.prototype.toString,
|
||||
core_hasOwn = Object.prototype.hasOwnProperty,
|
||||
core_trim = String.prototype.trim,
|
||||
|
||||
// Define a local copy of jQuery
|
||||
jQuery = function( selector, context ) {
|
||||
// The jQuery object is actually just the init constructor 'enhanced'
|
||||
return new jQuery.fn.init( selector, context, rootjQuery );
|
||||
},
|
||||
|
||||
// A central reference to the root jQuery(document)
|
||||
rootjQuery,
|
||||
|
||||
// The deferred used on DOM ready
|
||||
readyList,
|
||||
|
||||
// For matching the engine and version of the browser
|
||||
browserMatch,
|
||||
|
||||
// Used for detecting and trimming whitespace
|
||||
core_rnotwhite = /\S/,
|
||||
core_rspace = /\s+/,
|
||||
trimLeft = /^\s+/,
|
||||
trimRight = /\s+$/,
|
||||
|
||||
// A simple way to check for HTML strings or ID strings
|
||||
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
|
||||
quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
|
||||
|
||||
// Check if a string has a non-whitespace character in it
|
||||
rnotwhite = /\S/,
|
||||
|
||||
// Used for trimming whitespace
|
||||
trimLeft = /^\s+/,
|
||||
trimRight = /\s+$/,
|
||||
|
||||
// Match a standalone tag
|
||||
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
|
||||
|
||||
// JSON RegExp
|
||||
rvalidchars = /^[\],:{}\s]*$/,
|
||||
rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
|
||||
rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
|
||||
rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
|
||||
rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
|
||||
rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
|
||||
|
||||
// Useragent RegExp
|
||||
rwebkit = /(webkit)[ \/]([\w.]+)/,
|
||||
ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
|
||||
rmsie = /(msie) ([\w.]+)/,
|
||||
rwebkit = /(webkit)[ \/]([\w.]+)/,
|
||||
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
|
||||
ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
|
||||
|
||||
// Matches dashed string for camelizing
|
||||
rdashAlpha = /-([a-z]|[0-9])/ig,
|
||||
rmsPrefix = /^-ms-/,
|
||||
rdashAlpha = /-([\da-z])/gi,
|
||||
|
||||
// Used by jQuery.camelCase as callback to replace()
|
||||
fcamelCase = function( all, letter ) {
|
||||
@ -64,12 +70,6 @@ var document = window.document,
|
||||
// Keep a UserAgent string for use with jQuery.browser
|
||||
userAgent = navigator.userAgent,
|
||||
|
||||
// For matching the engine and version of the browser
|
||||
browserMatch,
|
||||
|
||||
// The deferred used on DOM ready
|
||||
readyList,
|
||||
|
||||
// The ready event handler and self cleanup method
|
||||
DOMContentLoaded = function() {
|
||||
if ( document.addEventListener ) {
|
||||
@ -200,7 +200,7 @@ jQuery.fn = jQuery.prototype = {
|
||||
},
|
||||
|
||||
toArray: function() {
|
||||
return slice.call( this );
|
||||
return core_slice.call( this );
|
||||
},
|
||||
|
||||
// Get the Nth element in the matched element set OR
|
||||
@ -222,7 +222,7 @@ jQuery.fn = jQuery.prototype = {
|
||||
var ret = this.constructor();
|
||||
|
||||
if ( jQuery.isArray( elems ) ) {
|
||||
push.apply( ret, elems );
|
||||
core_push.apply( ret, elems );
|
||||
|
||||
} else {
|
||||
jQuery.merge( ret, elems );
|
||||
@ -273,8 +273,8 @@ jQuery.fn = jQuery.prototype = {
|
||||
},
|
||||
|
||||
slice: function() {
|
||||
return this.pushStack( slice.apply( this, arguments ),
|
||||
"slice", slice.call(arguments).join(",") );
|
||||
return this.pushStack( core_slice.apply( this, arguments ),
|
||||
"slice", core_slice.call(arguments).join(",") );
|
||||
},
|
||||
|
||||
map: function( callback ) {
|
||||
@ -289,7 +289,7 @@ jQuery.fn = jQuery.prototype = {
|
||||
|
||||
// For internal use only.
|
||||
// Behaves like an Array's method, not like a jQuery method.
|
||||
push: push,
|
||||
push: core_push,
|
||||
sort: [].sort,
|
||||
splice: [].splice
|
||||
};
|
||||
@ -440,7 +440,7 @@ jQuery.extend({
|
||||
type: function( obj ) {
|
||||
return obj == null ?
|
||||
String( obj ) :
|
||||
class2type[ toString.call(obj) ] || "object";
|
||||
class2type[ core_toString.call(obj) ] || "object";
|
||||
},
|
||||
|
||||
isPlainObject: function( obj ) {
|
||||
@ -454,8 +454,8 @@ jQuery.extend({
|
||||
try {
|
||||
// Not own constructor property must be Object
|
||||
if ( obj.constructor &&
|
||||
!hasOwn.call(obj, "constructor") &&
|
||||
!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
|
||||
!core_hasOwn.call(obj, "constructor") &&
|
||||
!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
|
||||
return false;
|
||||
}
|
||||
} catch ( e ) {
|
||||
@ -469,7 +469,7 @@ jQuery.extend({
|
||||
var key;
|
||||
for ( key in obj ) {}
|
||||
|
||||
return key === undefined || hasOwn.call( obj, key );
|
||||
return key === undefined || core_hasOwn.call( obj, key );
|
||||
},
|
||||
|
||||
isEmptyObject: function( obj ) {
|
||||
@ -538,7 +538,7 @@ jQuery.extend({
|
||||
// Workarounds based on findings by Jim Driscoll
|
||||
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
|
||||
globalEval: function( data ) {
|
||||
if ( data && rnotwhite.test( data ) ) {
|
||||
if ( data && core_rnotwhite.test( data ) ) {
|
||||
// We use execScript on Internet Explorer
|
||||
// We use an anonymous function so that context is window
|
||||
// rather than jQuery in Firefox
|
||||
@ -600,11 +600,11 @@ jQuery.extend({
|
||||
},
|
||||
|
||||
// Use native String.trim function wherever possible
|
||||
trim: trim ?
|
||||
trim: core_trim ?
|
||||
function( text ) {
|
||||
return text == null ?
|
||||
"" :
|
||||
trim.call( text );
|
||||
core_trim.call( text );
|
||||
} :
|
||||
|
||||
// Otherwise use our own trimming functionality
|
||||
@ -624,7 +624,7 @@ jQuery.extend({
|
||||
var type = jQuery.type( array );
|
||||
|
||||
if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
|
||||
push.call( ret, array );
|
||||
core_push.call( ret, array );
|
||||
} else {
|
||||
jQuery.merge( ret, array );
|
||||
}
|
||||
@ -637,8 +637,8 @@ jQuery.extend({
|
||||
var len;
|
||||
|
||||
if ( array ) {
|
||||
if ( indexOf ) {
|
||||
return indexOf.call( array, elem, i );
|
||||
if ( core_indexOf ) {
|
||||
return core_indexOf.call( array, elem, i );
|
||||
}
|
||||
|
||||
len = array.length;
|
||||
@ -743,9 +743,9 @@ jQuery.extend({
|
||||
}
|
||||
|
||||
// Simulated bind
|
||||
var args = slice.call( arguments, 2 ),
|
||||
var args = core_slice.call( arguments, 2 ),
|
||||
proxy = function() {
|
||||
return fn.apply( context, args.concat( slice.call( arguments ) ) );
|
||||
return fn.apply( context, args.concat( core_slice.call( arguments ) ) );
|
||||
};
|
||||
|
||||
// Set the guid of unique handler to the same of original handler, so it can be removed
|
||||
@ -910,7 +910,7 @@ if ( jQuery.browser.webkit ) {
|
||||
}
|
||||
|
||||
// IE doesn't match non-breaking spaces with \s
|
||||
if ( rnotwhite.test( "\xA0" ) ) {
|
||||
if ( core_rnotwhite.test( "\xA0" ) ) {
|
||||
trimLeft = /^[\s\xA0]+/;
|
||||
trimRight = /[\s\xA0]+$/;
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ function showHide( elements, show ) {
|
||||
// for such an element
|
||||
if ( (elem.style.display === "" && curCSS( elem, "display" ) === "none") ||
|
||||
!jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
|
||||
values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
|
||||
values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
|
||||
}
|
||||
} else {
|
||||
display = curCSS( elem, "display" );
|
||||
@ -434,7 +434,7 @@ function getWidthOrHeight( elem, name, extra ) {
|
||||
|
||||
|
||||
// Try to determine the default display value of an element
|
||||
function defaultDisplay( nodeName ) {
|
||||
function css_defaultDisplay( nodeName ) {
|
||||
if ( elemdisplay[ nodeName ] ) {
|
||||
return elemdisplay[ nodeName ];
|
||||
}
|
||||
|
@ -1,6 +1,3 @@
|
||||
var // Static reference to slice
|
||||
sliceDeferred = [].slice;
|
||||
|
||||
jQuery.extend({
|
||||
|
||||
Deferred: function( func ) {
|
||||
@ -93,7 +90,7 @@ jQuery.extend({
|
||||
// Deferred helper
|
||||
when: function( subordinate /* , ..., subordinateN */ ) {
|
||||
var i = 0,
|
||||
resolveValues = sliceDeferred.call( arguments ),
|
||||
resolveValues = core_slice.call( arguments ),
|
||||
length = resolveValues.length,
|
||||
|
||||
// the count of uncompleted subordinates
|
||||
@ -106,7 +103,7 @@ jQuery.extend({
|
||||
updateFunc = function( i, contexts, values ) {
|
||||
return function( value ) {
|
||||
contexts[ i ] = this;
|
||||
values[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments ) : value;
|
||||
values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
|
||||
if( values === progressValues ) {
|
||||
deferred.notifyWith( contexts, values );
|
||||
} else if ( !( --remaining ) ) {
|
||||
|
2
src/effects.js
vendored
2
src/effects.js
vendored
@ -269,7 +269,7 @@ function defaultPrefilter( elem, props, opts ) {
|
||||
|
||||
// inline-level elements accept inline-block;
|
||||
// block-level elements need to be inline with layout
|
||||
if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) {
|
||||
if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
|
||||
style.display = "inline-block";
|
||||
|
||||
} else {
|
||||
|
@ -16,7 +16,7 @@ var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figca
|
||||
"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
|
||||
rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
|
||||
rleadingWhitespace = /^\s+/,
|
||||
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
|
||||
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
|
||||
rtagName = /<([\w:]+)/,
|
||||
rtbody = /<tbody/i,
|
||||
rhtml = /<|&#?\w+;/,
|
||||
|
@ -221,7 +221,7 @@ jQuery.each({
|
||||
ret = ret.reverse();
|
||||
}
|
||||
|
||||
return this.pushStack( ret, name, slice.call( arguments ).join(",") );
|
||||
return this.pushStack( ret, name, core_slice.call( arguments ).join(",") );
|
||||
};
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user