Edit File by line
/home/barbar84/www/wp-inclu.../js/jquery
File: jquery.js
master = jQuery.Deferred(),
[4000] Fix | Delete
[4001] Fix | Delete
// subordinate callback factory
[4002] Fix | Delete
updateFunc = function( i ) {
[4003] Fix | Delete
return function( value ) {
[4004] Fix | Delete
resolveContexts[ i ] = this;
[4005] Fix | Delete
resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
[4006] Fix | Delete
if ( !( --remaining ) ) {
[4007] Fix | Delete
master.resolveWith( resolveContexts, resolveValues );
[4008] Fix | Delete
}
[4009] Fix | Delete
};
[4010] Fix | Delete
};
[4011] Fix | Delete
[4012] Fix | Delete
// Single- and empty arguments are adopted like Promise.resolve
[4013] Fix | Delete
if ( remaining <= 1 ) {
[4014] Fix | Delete
adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
[4015] Fix | Delete
!remaining );
[4016] Fix | Delete
[4017] Fix | Delete
// Use .then() to unwrap secondary thenables (cf. gh-3000)
[4018] Fix | Delete
if ( master.state() === "pending" ||
[4019] Fix | Delete
isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
[4020] Fix | Delete
[4021] Fix | Delete
return master.then();
[4022] Fix | Delete
}
[4023] Fix | Delete
}
[4024] Fix | Delete
[4025] Fix | Delete
// Multiple arguments are aggregated like Promise.all array elements
[4026] Fix | Delete
while ( i-- ) {
[4027] Fix | Delete
adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
[4028] Fix | Delete
}
[4029] Fix | Delete
[4030] Fix | Delete
return master.promise();
[4031] Fix | Delete
}
[4032] Fix | Delete
} );
[4033] Fix | Delete
[4034] Fix | Delete
[4035] Fix | Delete
// These usually indicate a programmer mistake during development,
[4036] Fix | Delete
// warn about them ASAP rather than swallowing them by default.
[4037] Fix | Delete
var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
[4038] Fix | Delete
[4039] Fix | Delete
jQuery.Deferred.exceptionHook = function( error, stack ) {
[4040] Fix | Delete
[4041] Fix | Delete
// Support: IE 8 - 9 only
[4042] Fix | Delete
// Console exists when dev tools are open, which can happen at any time
[4043] Fix | Delete
if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
[4044] Fix | Delete
window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
[4045] Fix | Delete
}
[4046] Fix | Delete
};
[4047] Fix | Delete
[4048] Fix | Delete
[4049] Fix | Delete
[4050] Fix | Delete
[4051] Fix | Delete
jQuery.readyException = function( error ) {
[4052] Fix | Delete
window.setTimeout( function() {
[4053] Fix | Delete
throw error;
[4054] Fix | Delete
} );
[4055] Fix | Delete
};
[4056] Fix | Delete
[4057] Fix | Delete
[4058] Fix | Delete
[4059] Fix | Delete
[4060] Fix | Delete
// The deferred used on DOM ready
[4061] Fix | Delete
var readyList = jQuery.Deferred();
[4062] Fix | Delete
[4063] Fix | Delete
jQuery.fn.ready = function( fn ) {
[4064] Fix | Delete
[4065] Fix | Delete
readyList
[4066] Fix | Delete
.then( fn )
[4067] Fix | Delete
[4068] Fix | Delete
// Wrap jQuery.readyException in a function so that the lookup
[4069] Fix | Delete
// happens at the time of error handling instead of callback
[4070] Fix | Delete
// registration.
[4071] Fix | Delete
.catch( function( error ) {
[4072] Fix | Delete
jQuery.readyException( error );
[4073] Fix | Delete
} );
[4074] Fix | Delete
[4075] Fix | Delete
return this;
[4076] Fix | Delete
};
[4077] Fix | Delete
[4078] Fix | Delete
jQuery.extend( {
[4079] Fix | Delete
[4080] Fix | Delete
// Is the DOM ready to be used? Set to true once it occurs.
[4081] Fix | Delete
isReady: false,
[4082] Fix | Delete
[4083] Fix | Delete
// A counter to track how many items to wait for before
[4084] Fix | Delete
// the ready event fires. See #6781
[4085] Fix | Delete
readyWait: 1,
[4086] Fix | Delete
[4087] Fix | Delete
// Handle when the DOM is ready
[4088] Fix | Delete
ready: function( wait ) {
[4089] Fix | Delete
[4090] Fix | Delete
// Abort if there are pending holds or we're already ready
[4091] Fix | Delete
if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
[4092] Fix | Delete
return;
[4093] Fix | Delete
}
[4094] Fix | Delete
[4095] Fix | Delete
// Remember that the DOM is ready
[4096] Fix | Delete
jQuery.isReady = true;
[4097] Fix | Delete
[4098] Fix | Delete
// If a normal DOM Ready event fired, decrement, and wait if need be
[4099] Fix | Delete
if ( wait !== true && --jQuery.readyWait > 0 ) {
[4100] Fix | Delete
return;
[4101] Fix | Delete
}
[4102] Fix | Delete
[4103] Fix | Delete
// If there are functions bound, to execute
[4104] Fix | Delete
readyList.resolveWith( document, [ jQuery ] );
[4105] Fix | Delete
}
[4106] Fix | Delete
} );
[4107] Fix | Delete
[4108] Fix | Delete
jQuery.ready.then = readyList.then;
[4109] Fix | Delete
[4110] Fix | Delete
// The ready event handler and self cleanup method
[4111] Fix | Delete
function completed() {
[4112] Fix | Delete
document.removeEventListener( "DOMContentLoaded", completed );
[4113] Fix | Delete
window.removeEventListener( "load", completed );
[4114] Fix | Delete
jQuery.ready();
[4115] Fix | Delete
}
[4116] Fix | Delete
[4117] Fix | Delete
// Catch cases where $(document).ready() is called
[4118] Fix | Delete
// after the browser event has already occurred.
[4119] Fix | Delete
// Support: IE <=9 - 10 only
[4120] Fix | Delete
// Older IE sometimes signals "interactive" too soon
[4121] Fix | Delete
if ( document.readyState === "complete" ||
[4122] Fix | Delete
( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
[4123] Fix | Delete
[4124] Fix | Delete
// Handle it asynchronously to allow scripts the opportunity to delay ready
[4125] Fix | Delete
window.setTimeout( jQuery.ready );
[4126] Fix | Delete
[4127] Fix | Delete
} else {
[4128] Fix | Delete
[4129] Fix | Delete
// Use the handy event callback
[4130] Fix | Delete
document.addEventListener( "DOMContentLoaded", completed );
[4131] Fix | Delete
[4132] Fix | Delete
// A fallback to window.onload, that will always work
[4133] Fix | Delete
window.addEventListener( "load", completed );
[4134] Fix | Delete
}
[4135] Fix | Delete
[4136] Fix | Delete
[4137] Fix | Delete
[4138] Fix | Delete
[4139] Fix | Delete
// Multifunctional method to get and set values of a collection
[4140] Fix | Delete
// The value/s can optionally be executed if it's a function
[4141] Fix | Delete
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
[4142] Fix | Delete
var i = 0,
[4143] Fix | Delete
len = elems.length,
[4144] Fix | Delete
bulk = key == null;
[4145] Fix | Delete
[4146] Fix | Delete
// Sets many values
[4147] Fix | Delete
if ( toType( key ) === "object" ) {
[4148] Fix | Delete
chainable = true;
[4149] Fix | Delete
for ( i in key ) {
[4150] Fix | Delete
access( elems, fn, i, key[ i ], true, emptyGet, raw );
[4151] Fix | Delete
}
[4152] Fix | Delete
[4153] Fix | Delete
// Sets one value
[4154] Fix | Delete
} else if ( value !== undefined ) {
[4155] Fix | Delete
chainable = true;
[4156] Fix | Delete
[4157] Fix | Delete
if ( !isFunction( value ) ) {
[4158] Fix | Delete
raw = true;
[4159] Fix | Delete
}
[4160] Fix | Delete
[4161] Fix | Delete
if ( bulk ) {
[4162] Fix | Delete
[4163] Fix | Delete
// Bulk operations run against the entire set
[4164] Fix | Delete
if ( raw ) {
[4165] Fix | Delete
fn.call( elems, value );
[4166] Fix | Delete
fn = null;
[4167] Fix | Delete
[4168] Fix | Delete
// ...except when executing function values
[4169] Fix | Delete
} else {
[4170] Fix | Delete
bulk = fn;
[4171] Fix | Delete
fn = function( elem, _key, value ) {
[4172] Fix | Delete
return bulk.call( jQuery( elem ), value );
[4173] Fix | Delete
};
[4174] Fix | Delete
}
[4175] Fix | Delete
}
[4176] Fix | Delete
[4177] Fix | Delete
if ( fn ) {
[4178] Fix | Delete
for ( ; i < len; i++ ) {
[4179] Fix | Delete
fn(
[4180] Fix | Delete
elems[ i ], key, raw ?
[4181] Fix | Delete
value :
[4182] Fix | Delete
value.call( elems[ i ], i, fn( elems[ i ], key ) )
[4183] Fix | Delete
);
[4184] Fix | Delete
}
[4185] Fix | Delete
}
[4186] Fix | Delete
}
[4187] Fix | Delete
[4188] Fix | Delete
if ( chainable ) {
[4189] Fix | Delete
return elems;
[4190] Fix | Delete
}
[4191] Fix | Delete
[4192] Fix | Delete
// Gets
[4193] Fix | Delete
if ( bulk ) {
[4194] Fix | Delete
return fn.call( elems );
[4195] Fix | Delete
}
[4196] Fix | Delete
[4197] Fix | Delete
return len ? fn( elems[ 0 ], key ) : emptyGet;
[4198] Fix | Delete
};
[4199] Fix | Delete
[4200] Fix | Delete
[4201] Fix | Delete
// Matches dashed string for camelizing
[4202] Fix | Delete
var rmsPrefix = /^-ms-/,
[4203] Fix | Delete
rdashAlpha = /-([a-z])/g;
[4204] Fix | Delete
[4205] Fix | Delete
// Used by camelCase as callback to replace()
[4206] Fix | Delete
function fcamelCase( _all, letter ) {
[4207] Fix | Delete
return letter.toUpperCase();
[4208] Fix | Delete
}
[4209] Fix | Delete
[4210] Fix | Delete
// Convert dashed to camelCase; used by the css and data modules
[4211] Fix | Delete
// Support: IE <=9 - 11, Edge 12 - 15
[4212] Fix | Delete
// Microsoft forgot to hump their vendor prefix (#9572)
[4213] Fix | Delete
function camelCase( string ) {
[4214] Fix | Delete
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
[4215] Fix | Delete
}
[4216] Fix | Delete
var acceptData = function( owner ) {
[4217] Fix | Delete
[4218] Fix | Delete
// Accepts only:
[4219] Fix | Delete
// - Node
[4220] Fix | Delete
// - Node.ELEMENT_NODE
[4221] Fix | Delete
// - Node.DOCUMENT_NODE
[4222] Fix | Delete
// - Object
[4223] Fix | Delete
// - Any
[4224] Fix | Delete
return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
[4225] Fix | Delete
};
[4226] Fix | Delete
[4227] Fix | Delete
[4228] Fix | Delete
[4229] Fix | Delete
[4230] Fix | Delete
function Data() {
[4231] Fix | Delete
this.expando = jQuery.expando + Data.uid++;
[4232] Fix | Delete
}
[4233] Fix | Delete
[4234] Fix | Delete
Data.uid = 1;
[4235] Fix | Delete
[4236] Fix | Delete
Data.prototype = {
[4237] Fix | Delete
[4238] Fix | Delete
cache: function( owner ) {
[4239] Fix | Delete
[4240] Fix | Delete
// Check if the owner object already has a cache
[4241] Fix | Delete
var value = owner[ this.expando ];
[4242] Fix | Delete
[4243] Fix | Delete
// If not, create one
[4244] Fix | Delete
if ( !value ) {
[4245] Fix | Delete
value = {};
[4246] Fix | Delete
[4247] Fix | Delete
// We can accept data for non-element nodes in modern browsers,
[4248] Fix | Delete
// but we should not, see #8335.
[4249] Fix | Delete
// Always return an empty object.
[4250] Fix | Delete
if ( acceptData( owner ) ) {
[4251] Fix | Delete
[4252] Fix | Delete
// If it is a node unlikely to be stringify-ed or looped over
[4253] Fix | Delete
// use plain assignment
[4254] Fix | Delete
if ( owner.nodeType ) {
[4255] Fix | Delete
owner[ this.expando ] = value;
[4256] Fix | Delete
[4257] Fix | Delete
// Otherwise secure it in a non-enumerable property
[4258] Fix | Delete
// configurable must be true to allow the property to be
[4259] Fix | Delete
// deleted when data is removed
[4260] Fix | Delete
} else {
[4261] Fix | Delete
Object.defineProperty( owner, this.expando, {
[4262] Fix | Delete
value: value,
[4263] Fix | Delete
configurable: true
[4264] Fix | Delete
} );
[4265] Fix | Delete
}
[4266] Fix | Delete
}
[4267] Fix | Delete
}
[4268] Fix | Delete
[4269] Fix | Delete
return value;
[4270] Fix | Delete
},
[4271] Fix | Delete
set: function( owner, data, value ) {
[4272] Fix | Delete
var prop,
[4273] Fix | Delete
cache = this.cache( owner );
[4274] Fix | Delete
[4275] Fix | Delete
// Handle: [ owner, key, value ] args
[4276] Fix | Delete
// Always use camelCase key (gh-2257)
[4277] Fix | Delete
if ( typeof data === "string" ) {
[4278] Fix | Delete
cache[ camelCase( data ) ] = value;
[4279] Fix | Delete
[4280] Fix | Delete
// Handle: [ owner, { properties } ] args
[4281] Fix | Delete
} else {
[4282] Fix | Delete
[4283] Fix | Delete
// Copy the properties one-by-one to the cache object
[4284] Fix | Delete
for ( prop in data ) {
[4285] Fix | Delete
cache[ camelCase( prop ) ] = data[ prop ];
[4286] Fix | Delete
}
[4287] Fix | Delete
}
[4288] Fix | Delete
return cache;
[4289] Fix | Delete
},
[4290] Fix | Delete
get: function( owner, key ) {
[4291] Fix | Delete
return key === undefined ?
[4292] Fix | Delete
this.cache( owner ) :
[4293] Fix | Delete
[4294] Fix | Delete
// Always use camelCase key (gh-2257)
[4295] Fix | Delete
owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
[4296] Fix | Delete
},
[4297] Fix | Delete
access: function( owner, key, value ) {
[4298] Fix | Delete
[4299] Fix | Delete
// In cases where either:
[4300] Fix | Delete
//
[4301] Fix | Delete
// 1. No key was specified
[4302] Fix | Delete
// 2. A string key was specified, but no value provided
[4303] Fix | Delete
//
[4304] Fix | Delete
// Take the "read" path and allow the get method to determine
[4305] Fix | Delete
// which value to return, respectively either:
[4306] Fix | Delete
//
[4307] Fix | Delete
// 1. The entire cache object
[4308] Fix | Delete
// 2. The data stored at the key
[4309] Fix | Delete
//
[4310] Fix | Delete
if ( key === undefined ||
[4311] Fix | Delete
( ( key && typeof key === "string" ) && value === undefined ) ) {
[4312] Fix | Delete
[4313] Fix | Delete
return this.get( owner, key );
[4314] Fix | Delete
}
[4315] Fix | Delete
[4316] Fix | Delete
// When the key is not a string, or both a key and value
[4317] Fix | Delete
// are specified, set or extend (existing objects) with either:
[4318] Fix | Delete
//
[4319] Fix | Delete
// 1. An object of properties
[4320] Fix | Delete
// 2. A key and value
[4321] Fix | Delete
//
[4322] Fix | Delete
this.set( owner, key, value );
[4323] Fix | Delete
[4324] Fix | Delete
// Since the "set" path can have two possible entry points
[4325] Fix | Delete
// return the expected data based on which path was taken[*]
[4326] Fix | Delete
return value !== undefined ? value : key;
[4327] Fix | Delete
},
[4328] Fix | Delete
remove: function( owner, key ) {
[4329] Fix | Delete
var i,
[4330] Fix | Delete
cache = owner[ this.expando ];
[4331] Fix | Delete
[4332] Fix | Delete
if ( cache === undefined ) {
[4333] Fix | Delete
return;
[4334] Fix | Delete
}
[4335] Fix | Delete
[4336] Fix | Delete
if ( key !== undefined ) {
[4337] Fix | Delete
[4338] Fix | Delete
// Support array or space separated string of keys
[4339] Fix | Delete
if ( Array.isArray( key ) ) {
[4340] Fix | Delete
[4341] Fix | Delete
// If key is an array of keys...
[4342] Fix | Delete
// We always set camelCase keys, so remove that.
[4343] Fix | Delete
key = key.map( camelCase );
[4344] Fix | Delete
} else {
[4345] Fix | Delete
key = camelCase( key );
[4346] Fix | Delete
[4347] Fix | Delete
// If a key with the spaces exists, use it.
[4348] Fix | Delete
// Otherwise, create an array by matching non-whitespace
[4349] Fix | Delete
key = key in cache ?
[4350] Fix | Delete
[ key ] :
[4351] Fix | Delete
( key.match( rnothtmlwhite ) || [] );
[4352] Fix | Delete
}
[4353] Fix | Delete
[4354] Fix | Delete
i = key.length;
[4355] Fix | Delete
[4356] Fix | Delete
while ( i-- ) {
[4357] Fix | Delete
delete cache[ key[ i ] ];
[4358] Fix | Delete
}
[4359] Fix | Delete
}
[4360] Fix | Delete
[4361] Fix | Delete
// Remove the expando if there's no more data
[4362] Fix | Delete
if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
[4363] Fix | Delete
[4364] Fix | Delete
// Support: Chrome <=35 - 45
[4365] Fix | Delete
// Webkit & Blink performance suffers when deleting properties
[4366] Fix | Delete
// from DOM nodes, so set to undefined instead
[4367] Fix | Delete
// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
[4368] Fix | Delete
if ( owner.nodeType ) {
[4369] Fix | Delete
owner[ this.expando ] = undefined;
[4370] Fix | Delete
} else {
[4371] Fix | Delete
delete owner[ this.expando ];
[4372] Fix | Delete
}
[4373] Fix | Delete
}
[4374] Fix | Delete
},
[4375] Fix | Delete
hasData: function( owner ) {
[4376] Fix | Delete
var cache = owner[ this.expando ];
[4377] Fix | Delete
return cache !== undefined && !jQuery.isEmptyObject( cache );
[4378] Fix | Delete
}
[4379] Fix | Delete
};
[4380] Fix | Delete
var dataPriv = new Data();
[4381] Fix | Delete
[4382] Fix | Delete
var dataUser = new Data();
[4383] Fix | Delete
[4384] Fix | Delete
[4385] Fix | Delete
[4386] Fix | Delete
// Implementation Summary
[4387] Fix | Delete
//
[4388] Fix | Delete
// 1. Enforce API surface and semantic compatibility with 1.9.x branch
[4389] Fix | Delete
// 2. Improve the module's maintainability by reducing the storage
[4390] Fix | Delete
// paths to a single mechanism.
[4391] Fix | Delete
// 3. Use the same single mechanism to support "private" and "user" data.
[4392] Fix | Delete
// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
[4393] Fix | Delete
// 5. Avoid exposing implementation details on user objects (eg. expando properties)
[4394] Fix | Delete
// 6. Provide a clear path for implementation upgrade to WeakMap in 2014
[4395] Fix | Delete
[4396] Fix | Delete
var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
[4397] Fix | Delete
rmultiDash = /[A-Z]/g;
[4398] Fix | Delete
[4399] Fix | Delete
function getData( data ) {
[4400] Fix | Delete
if ( data === "true" ) {
[4401] Fix | Delete
return true;
[4402] Fix | Delete
}
[4403] Fix | Delete
[4404] Fix | Delete
if ( data === "false" ) {
[4405] Fix | Delete
return false;
[4406] Fix | Delete
}
[4407] Fix | Delete
[4408] Fix | Delete
if ( data === "null" ) {
[4409] Fix | Delete
return null;
[4410] Fix | Delete
}
[4411] Fix | Delete
[4412] Fix | Delete
// Only convert to a number if it doesn't change the string
[4413] Fix | Delete
if ( data === +data + "" ) {
[4414] Fix | Delete
return +data;
[4415] Fix | Delete
}
[4416] Fix | Delete
[4417] Fix | Delete
if ( rbrace.test( data ) ) {
[4418] Fix | Delete
return JSON.parse( data );
[4419] Fix | Delete
}
[4420] Fix | Delete
[4421] Fix | Delete
return data;
[4422] Fix | Delete
}
[4423] Fix | Delete
[4424] Fix | Delete
function dataAttr( elem, key, data ) {
[4425] Fix | Delete
var name;
[4426] Fix | Delete
[4427] Fix | Delete
// If nothing was found internally, try to fetch any
[4428] Fix | Delete
// data from the HTML5 data-* attribute
[4429] Fix | Delete
if ( data === undefined && elem.nodeType === 1 ) {
[4430] Fix | Delete
name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
[4431] Fix | Delete
data = elem.getAttribute( name );
[4432] Fix | Delete
[4433] Fix | Delete
if ( typeof data === "string" ) {
[4434] Fix | Delete
try {
[4435] Fix | Delete
data = getData( data );
[4436] Fix | Delete
} catch ( e ) {}
[4437] Fix | Delete
[4438] Fix | Delete
// Make sure we set the data so it isn't changed later
[4439] Fix | Delete
dataUser.set( elem, key, data );
[4440] Fix | Delete
} else {
[4441] Fix | Delete
data = undefined;
[4442] Fix | Delete
}
[4443] Fix | Delete
}
[4444] Fix | Delete
return data;
[4445] Fix | Delete
}
[4446] Fix | Delete
[4447] Fix | Delete
jQuery.extend( {
[4448] Fix | Delete
hasData: function( elem ) {
[4449] Fix | Delete
return dataUser.hasData( elem ) || dataPriv.hasData( elem );
[4450] Fix | Delete
},
[4451] Fix | Delete
[4452] Fix | Delete
data: function( elem, name, data ) {
[4453] Fix | Delete
return dataUser.access( elem, name, data );
[4454] Fix | Delete
},
[4455] Fix | Delete
[4456] Fix | Delete
removeData: function( elem, name ) {
[4457] Fix | Delete
dataUser.remove( elem, name );
[4458] Fix | Delete
},
[4459] Fix | Delete
[4460] Fix | Delete
// TODO: Now that all calls to _data and _removeData have been replaced
[4461] Fix | Delete
// with direct calls to dataPriv methods, these can be deprecated.
[4462] Fix | Delete
_data: function( elem, name, data ) {
[4463] Fix | Delete
return dataPriv.access( elem, name, data );
[4464] Fix | Delete
},
[4465] Fix | Delete
[4466] Fix | Delete
_removeData: function( elem, name ) {
[4467] Fix | Delete
dataPriv.remove( elem, name );
[4468] Fix | Delete
}
[4469] Fix | Delete
} );
[4470] Fix | Delete
[4471] Fix | Delete
jQuery.fn.extend( {
[4472] Fix | Delete
data: function( key, value ) {
[4473] Fix | Delete
var i, name, data,
[4474] Fix | Delete
elem = this[ 0 ],
[4475] Fix | Delete
attrs = elem && elem.attributes;
[4476] Fix | Delete
[4477] Fix | Delete
// Gets all values
[4478] Fix | Delete
if ( key === undefined ) {
[4479] Fix | Delete
if ( this.length ) {
[4480] Fix | Delete
data = dataUser.get( elem );
[4481] Fix | Delete
[4482] Fix | Delete
if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
[4483] Fix | Delete
i = attrs.length;
[4484] Fix | Delete
while ( i-- ) {
[4485] Fix | Delete
[4486] Fix | Delete
// Support: IE 11 only
[4487] Fix | Delete
// The attrs elements can be null (#14894)
[4488] Fix | Delete
if ( attrs[ i ] ) {
[4489] Fix | Delete
name = attrs[ i ].name;
[4490] Fix | Delete
if ( name.indexOf( "data-" ) === 0 ) {
[4491] Fix | Delete
name = camelCase( name.slice( 5 ) );
[4492] Fix | Delete
dataAttr( elem, name, data[ name ] );
[4493] Fix | Delete
}
[4494] Fix | Delete
}
[4495] Fix | Delete
}
[4496] Fix | Delete
dataPriv.set( elem, "hasDataAttrs", true );
[4497] Fix | Delete
}
[4498] Fix | Delete
}
[4499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function