scratch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 124  →  ?path2? @ 125
/bower_components/jquery/src/attributes/attr.js
@@ -1,73 +1,94 @@
define( [
define([
"../core",
"../var/rnotwhite",
"../var/strundefined",
"../core/access",
"./support",
"../var/rnothtmlwhite",
"../selector"
], function( jQuery, access, support, rnothtmlwhite ) {
], function( jQuery, rnotwhite, strundefined, access, support ) {
 
"use strict";
 
var boolHook,
var nodeHook, boolHook,
attrHandle = jQuery.expr.attrHandle;
 
jQuery.fn.extend( {
jQuery.fn.extend({
attr: function( name, value ) {
return access( this, jQuery.attr, name, value, arguments.length > 1 );
},
 
removeAttr: function( name ) {
return this.each( function() {
return this.each(function() {
jQuery.removeAttr( this, name );
} );
});
}
} );
});
 
jQuery.extend( {
jQuery.extend({
attr: function( elem, name, value ) {
var ret, hooks,
var hooks, ret,
nType = elem.nodeType;
 
// Don't get/set attributes on text, comment and attribute nodes
if ( nType === 3 || nType === 8 || nType === 2 ) {
// don't get/set attributes on text, comment and attribute nodes
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
return;
}
 
// Fallback to prop when attributes are not supported
if ( typeof elem.getAttribute === "undefined" ) {
if ( typeof elem.getAttribute === strundefined ) {
return jQuery.prop( elem, name, value );
}
 
// Attribute hooks are determined by the lowercase version
// All attributes are lowercase
// Grab necessary hook if one is defined
if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
name = name.toLowerCase();
hooks = jQuery.attrHooks[ name ] ||
( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
}
 
if ( value !== undefined ) {
 
if ( value === null ) {
jQuery.removeAttr( elem, name );
return;
}
 
if ( hooks && "set" in hooks &&
( ret = hooks.set( elem, value, name ) ) !== undefined ) {
} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
return ret;
 
} else {
elem.setAttribute( name, value + "" );
return value;
}
 
elem.setAttribute( name, value + "" );
return value;
}
} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
return ret;
 
if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
return ret;
} else {
ret = jQuery.find.attr( elem, name );
 
// Non-existent attributes return null, we normalize to undefined
return ret == null ?
undefined :
ret;
}
},
 
ret = jQuery.find.attr( elem, name );
removeAttr: function( elem, value ) {
var name, propName,
i = 0,
attrNames = value && value.match( rnotwhite );
 
// Non-existent attributes return null, we normalize to undefined
return ret == null ? undefined : ret;
if ( attrNames && elem.nodeType === 1 ) {
while ( (name = attrNames[i++]) ) {
propName = jQuery.propFix[ name ] || name;
 
// Boolean attributes get special treatment (#10870)
if ( jQuery.expr.match.bool.test( name ) ) {
// Set corresponding property to false
elem[ propName ] = false;
}
 
elem.removeAttribute( name );
}
}
},
 
attrHooks: {
@@ -84,29 +105,13 @@
}
}
}
},
 
removeAttr: function( elem, value ) {
var name,
i = 0,
 
// Attribute names can contain non-HTML whitespace characters
// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
attrNames = value && value.match( rnothtmlwhite );
 
if ( attrNames && elem.nodeType === 1 ) {
while ( ( name = attrNames[ i++ ] ) ) {
elem.removeAttribute( name );
}
}
}
} );
});
 
// Hooks for boolean attributes
boolHook = {
set: function( elem, value, name ) {
if ( value === false ) {
 
// Remove boolean attributes when set to false
jQuery.removeAttr( elem, name );
} else {
@@ -115,26 +120,22 @@
return name;
}
};
 
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
var getter = attrHandle[ name ] || jQuery.find.attr;
 
attrHandle[ name ] = function( elem, name, isXML ) {
var ret, handle,
lowercaseName = name.toLowerCase();
 
var ret, handle;
if ( !isXML ) {
 
// Avoid an infinite loop by temporarily removing this function from the getter
handle = attrHandle[ lowercaseName ];
attrHandle[ lowercaseName ] = ret;
handle = attrHandle[ name ];
attrHandle[ name ] = ret;
ret = getter( elem, name, isXML ) != null ?
lowercaseName :
name.toLowerCase() :
null;
attrHandle[ lowercaseName ] = handle;
attrHandle[ name ] = handle;
}
return ret;
};
} );
});
 
} );
});