Disabled the passthrough .attr(method_name) functionality. You can now use it if you do: .attr({method_name: value}, true) OR as an easy initialization method: jQuery('<div/>', {html: '...', id: 'test'}).
This commit is contained in:
parent
148fb7ba8e
commit
d40083c866
4 changed files with 35 additions and 13 deletions
|
@ -232,13 +232,13 @@ jQuery.extend({
|
|||
offset: true
|
||||
},
|
||||
|
||||
attr: function( elem, name, value ) {
|
||||
attr: function( elem, name, value, pass ) {
|
||||
// don't set attributes on text and comment nodes
|
||||
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if ( name in jQuery.attrFn && value !== undefined ) {
|
||||
if ( pass && name in jQuery.attrFn ) {
|
||||
return jQuery(elem)[name](value);
|
||||
}
|
||||
|
||||
|
|
14
src/core.js
14
src/core.js
|
@ -84,7 +84,13 @@ jQuery.fn = jQuery.prototype = {
|
|||
ret = rsingleTag.exec( selector );
|
||||
|
||||
if ( ret ) {
|
||||
selector = [ doc.createElement( ret[1] ) ];
|
||||
if ( jQuery.isPlainObject( context ) ) {
|
||||
selector = [ document.createElement( ret[1] ) ];
|
||||
jQuery.fn.attr.call( selector, context, true );
|
||||
|
||||
} else {
|
||||
selector = [ doc.createElement( ret[1] ) ];
|
||||
}
|
||||
|
||||
} else {
|
||||
ret = buildFragment( [ match[1] ], [ doc ] );
|
||||
|
@ -687,13 +693,13 @@ function evalScript( i, elem ) {
|
|||
|
||||
// Mutifunctional method to get and set values to a collection
|
||||
// The value/s can be optionally by executed if its a function
|
||||
function access( elems, key, value, exec, fn ) {
|
||||
function access( elems, key, value, exec, fn, pass ) {
|
||||
var length = elems.length;
|
||||
|
||||
// Setting many attributes
|
||||
if ( typeof key === "object" ) {
|
||||
for ( var k in key ) {
|
||||
access( elems, k, key[k], exec, fn );
|
||||
access( elems, k, key[k], exec, fn, value );
|
||||
}
|
||||
return elems;
|
||||
}
|
||||
|
@ -704,7 +710,7 @@ function access( elems, key, value, exec, fn ) {
|
|||
exec = exec && jQuery.isFunction(value);
|
||||
|
||||
for ( var i = 0; i < length; i++ ) {
|
||||
fn( elems[i], key, exec ? value.call( elems[i], i ) : value );
|
||||
fn( elems[i], key, exec ? value.call( elems[i], i ) : value, pass );
|
||||
}
|
||||
|
||||
return elems;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue