Edit File by line
/home/barbar84/www/wp-inclu.../js/jquery
File: jquery.js
} );
[500] Fix | Delete
[501] Fix | Delete
function isArrayLike( obj ) {
[502] Fix | Delete
[503] Fix | Delete
// Support: real iOS 8.2 only (not reproducible in simulator)
[504] Fix | Delete
// `in` check used to prevent JIT error (gh-2145)
[505] Fix | Delete
// hasOwn isn't used here due to false negatives
[506] Fix | Delete
// regarding Nodelist length in IE
[507] Fix | Delete
var length = !!obj && "length" in obj && obj.length,
[508] Fix | Delete
type = toType( obj );
[509] Fix | Delete
[510] Fix | Delete
if ( isFunction( obj ) || isWindow( obj ) ) {
[511] Fix | Delete
return false;
[512] Fix | Delete
}
[513] Fix | Delete
[514] Fix | Delete
return type === "array" || length === 0 ||
[515] Fix | Delete
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
[516] Fix | Delete
}
[517] Fix | Delete
var Sizzle =
[518] Fix | Delete
/*!
[519] Fix | Delete
* Sizzle CSS Selector Engine v2.3.5
[520] Fix | Delete
* https://sizzlejs.com/
[521] Fix | Delete
*
[522] Fix | Delete
* Copyright JS Foundation and other contributors
[523] Fix | Delete
* Released under the MIT license
[524] Fix | Delete
* https://js.foundation/
[525] Fix | Delete
*
[526] Fix | Delete
* Date: 2020-03-14
[527] Fix | Delete
*/
[528] Fix | Delete
( function( window ) {
[529] Fix | Delete
var i,
[530] Fix | Delete
support,
[531] Fix | Delete
Expr,
[532] Fix | Delete
getText,
[533] Fix | Delete
isXML,
[534] Fix | Delete
tokenize,
[535] Fix | Delete
compile,
[536] Fix | Delete
select,
[537] Fix | Delete
outermostContext,
[538] Fix | Delete
sortInput,
[539] Fix | Delete
hasDuplicate,
[540] Fix | Delete
[541] Fix | Delete
// Local document vars
[542] Fix | Delete
setDocument,
[543] Fix | Delete
document,
[544] Fix | Delete
docElem,
[545] Fix | Delete
documentIsHTML,
[546] Fix | Delete
rbuggyQSA,
[547] Fix | Delete
rbuggyMatches,
[548] Fix | Delete
matches,
[549] Fix | Delete
contains,
[550] Fix | Delete
[551] Fix | Delete
// Instance-specific data
[552] Fix | Delete
expando = "sizzle" + 1 * new Date(),
[553] Fix | Delete
preferredDoc = window.document,
[554] Fix | Delete
dirruns = 0,
[555] Fix | Delete
done = 0,
[556] Fix | Delete
classCache = createCache(),
[557] Fix | Delete
tokenCache = createCache(),
[558] Fix | Delete
compilerCache = createCache(),
[559] Fix | Delete
nonnativeSelectorCache = createCache(),
[560] Fix | Delete
sortOrder = function( a, b ) {
[561] Fix | Delete
if ( a === b ) {
[562] Fix | Delete
hasDuplicate = true;
[563] Fix | Delete
}
[564] Fix | Delete
return 0;
[565] Fix | Delete
},
[566] Fix | Delete
[567] Fix | Delete
// Instance methods
[568] Fix | Delete
hasOwn = ( {} ).hasOwnProperty,
[569] Fix | Delete
arr = [],
[570] Fix | Delete
pop = arr.pop,
[571] Fix | Delete
pushNative = arr.push,
[572] Fix | Delete
push = arr.push,
[573] Fix | Delete
slice = arr.slice,
[574] Fix | Delete
[575] Fix | Delete
// Use a stripped-down indexOf as it's faster than native
[576] Fix | Delete
// https://jsperf.com/thor-indexof-vs-for/5
[577] Fix | Delete
indexOf = function( list, elem ) {
[578] Fix | Delete
var i = 0,
[579] Fix | Delete
len = list.length;
[580] Fix | Delete
for ( ; i < len; i++ ) {
[581] Fix | Delete
if ( list[ i ] === elem ) {
[582] Fix | Delete
return i;
[583] Fix | Delete
}
[584] Fix | Delete
}
[585] Fix | Delete
return -1;
[586] Fix | Delete
},
[587] Fix | Delete
[588] Fix | Delete
booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
[589] Fix | Delete
"ismap|loop|multiple|open|readonly|required|scoped",
[590] Fix | Delete
[591] Fix | Delete
// Regular expressions
[592] Fix | Delete
[593] Fix | Delete
// http://www.w3.org/TR/css3-selectors/#whitespace
[594] Fix | Delete
whitespace = "[\\x20\\t\\r\\n\\f]",
[595] Fix | Delete
[596] Fix | Delete
// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
[597] Fix | Delete
identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
[598] Fix | Delete
"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
[599] Fix | Delete
[600] Fix | Delete
// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
[601] Fix | Delete
attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
[602] Fix | Delete
[603] Fix | Delete
// Operator (capture 2)
[604] Fix | Delete
"*([*^$|!~]?=)" + whitespace +
[605] Fix | Delete
[606] Fix | Delete
// "Attribute values must be CSS identifiers [capture 5]
[607] Fix | Delete
// or strings [capture 3 or capture 4]"
[608] Fix | Delete
"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
[609] Fix | Delete
whitespace + "*\\]",
[610] Fix | Delete
[611] Fix | Delete
pseudos = ":(" + identifier + ")(?:\\((" +
[612] Fix | Delete
[613] Fix | Delete
// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
[614] Fix | Delete
// 1. quoted (capture 3; capture 4 or capture 5)
[615] Fix | Delete
"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
[616] Fix | Delete
[617] Fix | Delete
// 2. simple (capture 6)
[618] Fix | Delete
"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
[619] Fix | Delete
[620] Fix | Delete
// 3. anything else (capture 2)
[621] Fix | Delete
".*" +
[622] Fix | Delete
")\\)|)",
[623] Fix | Delete
[624] Fix | Delete
// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
[625] Fix | Delete
rwhitespace = new RegExp( whitespace + "+", "g" ),
[626] Fix | Delete
rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
[627] Fix | Delete
whitespace + "+$", "g" ),
[628] Fix | Delete
[629] Fix | Delete
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
[630] Fix | Delete
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace +
[631] Fix | Delete
"*" ),
[632] Fix | Delete
rdescend = new RegExp( whitespace + "|>" ),
[633] Fix | Delete
[634] Fix | Delete
rpseudo = new RegExp( pseudos ),
[635] Fix | Delete
ridentifier = new RegExp( "^" + identifier + "$" ),
[636] Fix | Delete
[637] Fix | Delete
matchExpr = {
[638] Fix | Delete
"ID": new RegExp( "^#(" + identifier + ")" ),
[639] Fix | Delete
"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
[640] Fix | Delete
"TAG": new RegExp( "^(" + identifier + "|[*])" ),
[641] Fix | Delete
"ATTR": new RegExp( "^" + attributes ),
[642] Fix | Delete
"PSEUDO": new RegExp( "^" + pseudos ),
[643] Fix | Delete
"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
[644] Fix | Delete
whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
[645] Fix | Delete
whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
[646] Fix | Delete
"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
[647] Fix | Delete
[648] Fix | Delete
// For use in libraries implementing .is()
[649] Fix | Delete
// We use this for POS matching in `select`
[650] Fix | Delete
"needsContext": new RegExp( "^" + whitespace +
[651] Fix | Delete
"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
[652] Fix | Delete
"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
[653] Fix | Delete
},
[654] Fix | Delete
[655] Fix | Delete
rhtml = /HTML$/i,
[656] Fix | Delete
rinputs = /^(?:input|select|textarea|button)$/i,
[657] Fix | Delete
rheader = /^h\d$/i,
[658] Fix | Delete
[659] Fix | Delete
rnative = /^[^{]+\{\s*\[native \w/,
[660] Fix | Delete
[661] Fix | Delete
// Easily-parseable/retrievable ID or TAG or CLASS selectors
[662] Fix | Delete
rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
[663] Fix | Delete
[664] Fix | Delete
rsibling = /[+~]/,
[665] Fix | Delete
[666] Fix | Delete
// CSS escapes
[667] Fix | Delete
// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
[668] Fix | Delete
runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ),
[669] Fix | Delete
funescape = function( escape, nonHex ) {
[670] Fix | Delete
var high = "0x" + escape.slice( 1 ) - 0x10000;
[671] Fix | Delete
[672] Fix | Delete
return nonHex ?
[673] Fix | Delete
[674] Fix | Delete
// Strip the backslash prefix from a non-hex escape sequence
[675] Fix | Delete
nonHex :
[676] Fix | Delete
[677] Fix | Delete
// Replace a hexadecimal escape sequence with the encoded Unicode code point
[678] Fix | Delete
// Support: IE <=11+
[679] Fix | Delete
// For values outside the Basic Multilingual Plane (BMP), manually construct a
[680] Fix | Delete
// surrogate pair
[681] Fix | Delete
high < 0 ?
[682] Fix | Delete
String.fromCharCode( high + 0x10000 ) :
[683] Fix | Delete
String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
[684] Fix | Delete
},
[685] Fix | Delete
[686] Fix | Delete
// CSS string/identifier serialization
[687] Fix | Delete
// https://drafts.csswg.org/cssom/#common-serializing-idioms
[688] Fix | Delete
rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
[689] Fix | Delete
fcssescape = function( ch, asCodePoint ) {
[690] Fix | Delete
if ( asCodePoint ) {
[691] Fix | Delete
[692] Fix | Delete
// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
[693] Fix | Delete
if ( ch === "\0" ) {
[694] Fix | Delete
return "\uFFFD";
[695] Fix | Delete
}
[696] Fix | Delete
[697] Fix | Delete
// Control characters and (dependent upon position) numbers get escaped as code points
[698] Fix | Delete
return ch.slice( 0, -1 ) + "\\" +
[699] Fix | Delete
ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
[700] Fix | Delete
}
[701] Fix | Delete
[702] Fix | Delete
// Other potentially-special ASCII characters get backslash-escaped
[703] Fix | Delete
return "\\" + ch;
[704] Fix | Delete
},
[705] Fix | Delete
[706] Fix | Delete
// Used for iframes
[707] Fix | Delete
// See setDocument()
[708] Fix | Delete
// Removing the function wrapper causes a "Permission Denied"
[709] Fix | Delete
// error in IE
[710] Fix | Delete
unloadHandler = function() {
[711] Fix | Delete
setDocument();
[712] Fix | Delete
},
[713] Fix | Delete
[714] Fix | Delete
inDisabledFieldset = addCombinator(
[715] Fix | Delete
function( elem ) {
[716] Fix | Delete
return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
[717] Fix | Delete
},
[718] Fix | Delete
{ dir: "parentNode", next: "legend" }
[719] Fix | Delete
);
[720] Fix | Delete
[721] Fix | Delete
// Optimize for push.apply( _, NodeList )
[722] Fix | Delete
try {
[723] Fix | Delete
push.apply(
[724] Fix | Delete
( arr = slice.call( preferredDoc.childNodes ) ),
[725] Fix | Delete
preferredDoc.childNodes
[726] Fix | Delete
);
[727] Fix | Delete
[728] Fix | Delete
// Support: Android<4.0
[729] Fix | Delete
// Detect silently failing push.apply
[730] Fix | Delete
// eslint-disable-next-line no-unused-expressions
[731] Fix | Delete
arr[ preferredDoc.childNodes.length ].nodeType;
[732] Fix | Delete
} catch ( e ) {
[733] Fix | Delete
push = { apply: arr.length ?
[734] Fix | Delete
[735] Fix | Delete
// Leverage slice if possible
[736] Fix | Delete
function( target, els ) {
[737] Fix | Delete
pushNative.apply( target, slice.call( els ) );
[738] Fix | Delete
} :
[739] Fix | Delete
[740] Fix | Delete
// Support: IE<9
[741] Fix | Delete
// Otherwise append directly
[742] Fix | Delete
function( target, els ) {
[743] Fix | Delete
var j = target.length,
[744] Fix | Delete
i = 0;
[745] Fix | Delete
[746] Fix | Delete
// Can't trust NodeList.length
[747] Fix | Delete
while ( ( target[ j++ ] = els[ i++ ] ) ) {}
[748] Fix | Delete
target.length = j - 1;
[749] Fix | Delete
}
[750] Fix | Delete
};
[751] Fix | Delete
}
[752] Fix | Delete
[753] Fix | Delete
function Sizzle( selector, context, results, seed ) {
[754] Fix | Delete
var m, i, elem, nid, match, groups, newSelector,
[755] Fix | Delete
newContext = context && context.ownerDocument,
[756] Fix | Delete
[757] Fix | Delete
// nodeType defaults to 9, since context defaults to document
[758] Fix | Delete
nodeType = context ? context.nodeType : 9;
[759] Fix | Delete
[760] Fix | Delete
results = results || [];
[761] Fix | Delete
[762] Fix | Delete
// Return early from calls with invalid selector or context
[763] Fix | Delete
if ( typeof selector !== "string" || !selector ||
[764] Fix | Delete
nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
[765] Fix | Delete
[766] Fix | Delete
return results;
[767] Fix | Delete
}
[768] Fix | Delete
[769] Fix | Delete
// Try to shortcut find operations (as opposed to filters) in HTML documents
[770] Fix | Delete
if ( !seed ) {
[771] Fix | Delete
setDocument( context );
[772] Fix | Delete
context = context || document;
[773] Fix | Delete
[774] Fix | Delete
if ( documentIsHTML ) {
[775] Fix | Delete
[776] Fix | Delete
// If the selector is sufficiently simple, try using a "get*By*" DOM method
[777] Fix | Delete
// (excepting DocumentFragment context, where the methods don't exist)
[778] Fix | Delete
if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {
[779] Fix | Delete
[780] Fix | Delete
// ID selector
[781] Fix | Delete
if ( ( m = match[ 1 ] ) ) {
[782] Fix | Delete
[783] Fix | Delete
// Document context
[784] Fix | Delete
if ( nodeType === 9 ) {
[785] Fix | Delete
if ( ( elem = context.getElementById( m ) ) ) {
[786] Fix | Delete
[787] Fix | Delete
// Support: IE, Opera, Webkit
[788] Fix | Delete
// TODO: identify versions
[789] Fix | Delete
// getElementById can match elements by name instead of ID
[790] Fix | Delete
if ( elem.id === m ) {
[791] Fix | Delete
results.push( elem );
[792] Fix | Delete
return results;
[793] Fix | Delete
}
[794] Fix | Delete
} else {
[795] Fix | Delete
return results;
[796] Fix | Delete
}
[797] Fix | Delete
[798] Fix | Delete
// Element context
[799] Fix | Delete
} else {
[800] Fix | Delete
[801] Fix | Delete
// Support: IE, Opera, Webkit
[802] Fix | Delete
// TODO: identify versions
[803] Fix | Delete
// getElementById can match elements by name instead of ID
[804] Fix | Delete
if ( newContext && ( elem = newContext.getElementById( m ) ) &&
[805] Fix | Delete
contains( context, elem ) &&
[806] Fix | Delete
elem.id === m ) {
[807] Fix | Delete
[808] Fix | Delete
results.push( elem );
[809] Fix | Delete
return results;
[810] Fix | Delete
}
[811] Fix | Delete
}
[812] Fix | Delete
[813] Fix | Delete
// Type selector
[814] Fix | Delete
} else if ( match[ 2 ] ) {
[815] Fix | Delete
push.apply( results, context.getElementsByTagName( selector ) );
[816] Fix | Delete
return results;
[817] Fix | Delete
[818] Fix | Delete
// Class selector
[819] Fix | Delete
} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&
[820] Fix | Delete
context.getElementsByClassName ) {
[821] Fix | Delete
[822] Fix | Delete
push.apply( results, context.getElementsByClassName( m ) );
[823] Fix | Delete
return results;
[824] Fix | Delete
}
[825] Fix | Delete
}
[826] Fix | Delete
[827] Fix | Delete
// Take advantage of querySelectorAll
[828] Fix | Delete
if ( support.qsa &&
[829] Fix | Delete
!nonnativeSelectorCache[ selector + " " ] &&
[830] Fix | Delete
( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
[831] Fix | Delete
[832] Fix | Delete
// Support: IE 8 only
[833] Fix | Delete
// Exclude object elements
[834] Fix | Delete
( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
[835] Fix | Delete
[836] Fix | Delete
newSelector = selector;
[837] Fix | Delete
newContext = context;
[838] Fix | Delete
[839] Fix | Delete
// qSA considers elements outside a scoping root when evaluating child or
[840] Fix | Delete
// descendant combinators, which is not what we want.
[841] Fix | Delete
// In such cases, we work around the behavior by prefixing every selector in the
[842] Fix | Delete
// list with an ID selector referencing the scope context.
[843] Fix | Delete
// The technique has to be used as well when a leading combinator is used
[844] Fix | Delete
// as such selectors are not recognized by querySelectorAll.
[845] Fix | Delete
// Thanks to Andrew Dupont for this technique.
[846] Fix | Delete
if ( nodeType === 1 &&
[847] Fix | Delete
( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {
[848] Fix | Delete
[849] Fix | Delete
// Expand context for sibling selectors
[850] Fix | Delete
newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
[851] Fix | Delete
context;
[852] Fix | Delete
[853] Fix | Delete
// We can use :scope instead of the ID hack if the browser
[854] Fix | Delete
// supports it & if we're not changing the context.
[855] Fix | Delete
if ( newContext !== context || !support.scope ) {
[856] Fix | Delete
[857] Fix | Delete
// Capture the context ID, setting it first if necessary
[858] Fix | Delete
if ( ( nid = context.getAttribute( "id" ) ) ) {
[859] Fix | Delete
nid = nid.replace( rcssescape, fcssescape );
[860] Fix | Delete
} else {
[861] Fix | Delete
context.setAttribute( "id", ( nid = expando ) );
[862] Fix | Delete
}
[863] Fix | Delete
}
[864] Fix | Delete
[865] Fix | Delete
// Prefix every selector in the list
[866] Fix | Delete
groups = tokenize( selector );
[867] Fix | Delete
i = groups.length;
[868] Fix | Delete
while ( i-- ) {
[869] Fix | Delete
groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " +
[870] Fix | Delete
toSelector( groups[ i ] );
[871] Fix | Delete
}
[872] Fix | Delete
newSelector = groups.join( "," );
[873] Fix | Delete
}
[874] Fix | Delete
[875] Fix | Delete
try {
[876] Fix | Delete
push.apply( results,
[877] Fix | Delete
newContext.querySelectorAll( newSelector )
[878] Fix | Delete
);
[879] Fix | Delete
return results;
[880] Fix | Delete
} catch ( qsaError ) {
[881] Fix | Delete
nonnativeSelectorCache( selector, true );
[882] Fix | Delete
} finally {
[883] Fix | Delete
if ( nid === expando ) {
[884] Fix | Delete
context.removeAttribute( "id" );
[885] Fix | Delete
}
[886] Fix | Delete
}
[887] Fix | Delete
}
[888] Fix | Delete
}
[889] Fix | Delete
}
[890] Fix | Delete
[891] Fix | Delete
// All others
[892] Fix | Delete
return select( selector.replace( rtrim, "$1" ), context, results, seed );
[893] Fix | Delete
}
[894] Fix | Delete
[895] Fix | Delete
/**
[896] Fix | Delete
* Create key-value caches of limited size
[897] Fix | Delete
* @returns {function(string, object)} Returns the Object data after storing it on itself with
[898] Fix | Delete
* property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
[899] Fix | Delete
* deleting the oldest entry
[900] Fix | Delete
*/
[901] Fix | Delete
function createCache() {
[902] Fix | Delete
var keys = [];
[903] Fix | Delete
[904] Fix | Delete
function cache( key, value ) {
[905] Fix | Delete
[906] Fix | Delete
// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
[907] Fix | Delete
if ( keys.push( key + " " ) > Expr.cacheLength ) {
[908] Fix | Delete
[909] Fix | Delete
// Only keep the most recent entries
[910] Fix | Delete
delete cache[ keys.shift() ];
[911] Fix | Delete
}
[912] Fix | Delete
return ( cache[ key + " " ] = value );
[913] Fix | Delete
}
[914] Fix | Delete
return cache;
[915] Fix | Delete
}
[916] Fix | Delete
[917] Fix | Delete
/**
[918] Fix | Delete
* Mark a function for special use by Sizzle
[919] Fix | Delete
* @param {Function} fn The function to mark
[920] Fix | Delete
*/
[921] Fix | Delete
function markFunction( fn ) {
[922] Fix | Delete
fn[ expando ] = true;
[923] Fix | Delete
return fn;
[924] Fix | Delete
}
[925] Fix | Delete
[926] Fix | Delete
/**
[927] Fix | Delete
* Support testing using an element
[928] Fix | Delete
* @param {Function} fn Passed the created element and returns a boolean result
[929] Fix | Delete
*/
[930] Fix | Delete
function assert( fn ) {
[931] Fix | Delete
var el = document.createElement( "fieldset" );
[932] Fix | Delete
[933] Fix | Delete
try {
[934] Fix | Delete
return !!fn( el );
[935] Fix | Delete
} catch ( e ) {
[936] Fix | Delete
return false;
[937] Fix | Delete
} finally {
[938] Fix | Delete
[939] Fix | Delete
// Remove from its parent by default
[940] Fix | Delete
if ( el.parentNode ) {
[941] Fix | Delete
el.parentNode.removeChild( el );
[942] Fix | Delete
}
[943] Fix | Delete
[944] Fix | Delete
// release memory in IE
[945] Fix | Delete
el = null;
[946] Fix | Delete
}
[947] Fix | Delete
}
[948] Fix | Delete
[949] Fix | Delete
/**
[950] Fix | Delete
* Adds the same handler for all of the specified attrs
[951] Fix | Delete
* @param {String} attrs Pipe-separated list of attributes
[952] Fix | Delete
* @param {Function} handler The method that will be applied
[953] Fix | Delete
*/
[954] Fix | Delete
function addHandle( attrs, handler ) {
[955] Fix | Delete
var arr = attrs.split( "|" ),
[956] Fix | Delete
i = arr.length;
[957] Fix | Delete
[958] Fix | Delete
while ( i-- ) {
[959] Fix | Delete
Expr.attrHandle[ arr[ i ] ] = handler;
[960] Fix | Delete
}
[961] Fix | Delete
}
[962] Fix | Delete
[963] Fix | Delete
/**
[964] Fix | Delete
* Checks document order of two siblings
[965] Fix | Delete
* @param {Element} a
[966] Fix | Delete
* @param {Element} b
[967] Fix | Delete
* @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
[968] Fix | Delete
*/
[969] Fix | Delete
function siblingCheck( a, b ) {
[970] Fix | Delete
var cur = b && a,
[971] Fix | Delete
diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
[972] Fix | Delete
a.sourceIndex - b.sourceIndex;
[973] Fix | Delete
[974] Fix | Delete
// Use IE sourceIndex if available on both nodes
[975] Fix | Delete
if ( diff ) {
[976] Fix | Delete
return diff;
[977] Fix | Delete
}
[978] Fix | Delete
[979] Fix | Delete
// Check if b follows a
[980] Fix | Delete
if ( cur ) {
[981] Fix | Delete
while ( ( cur = cur.nextSibling ) ) {
[982] Fix | Delete
if ( cur === b ) {
[983] Fix | Delete
return -1;
[984] Fix | Delete
}
[985] Fix | Delete
}
[986] Fix | Delete
}
[987] Fix | Delete
[988] Fix | Delete
return a ? 1 : -1;
[989] Fix | Delete
}
[990] Fix | Delete
[991] Fix | Delete
/**
[992] Fix | Delete
* Returns a function to use in pseudos for input types
[993] Fix | Delete
* @param {String} type
[994] Fix | Delete
*/
[995] Fix | Delete
function createInputPseudo( type ) {
[996] Fix | Delete
return function( elem ) {
[997] Fix | Delete
var name = elem.nodeName.toLowerCase();
[998] Fix | Delete
return name === "input" && elem.type === type;
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function