- Added a hook to swap display none for width and height in browsers that do not sufficiently support get/setAttribute
This commit is contained in:
parent
1e9b3ef3d8
commit
5fc2281fcc
3 changed files with 24 additions and 5 deletions
|
@ -446,6 +446,20 @@ if ( !jQuery.support.getSetAttribute ) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Retrieving the width/height attributes on an
|
||||||
|
// element with display: none returns 0 in ie6/7 (#5413)
|
||||||
|
jQuery.each([ "width", "height" ], function( i, name ) {
|
||||||
|
jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
|
||||||
|
get: function( elem ) {
|
||||||
|
var ret;
|
||||||
|
jQuery.swap( elem, { visibility: "hidden", display: "block" }, function() {
|
||||||
|
ret = elem.getAttribute( name );
|
||||||
|
});
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove certain attrs if set to false
|
// Remove certain attrs if set to false
|
||||||
|
|
|
@ -550,6 +550,7 @@ jQuery.extend({
|
||||||
// Return the cloned set
|
// Return the cloned set
|
||||||
return clone;
|
return clone;
|
||||||
},
|
},
|
||||||
|
|
||||||
clean: function( elems, context, fragment, scripts ) {
|
clean: function( elems, context, fragment, scripts ) {
|
||||||
context = context || document;
|
context = context || document;
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ test("prop(String, Object)", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("attr(String)", function() {
|
test("attr(String)", function() {
|
||||||
expect(28);
|
expect(30);
|
||||||
|
|
||||||
equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' );
|
equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' );
|
||||||
equals( jQuery('#radio1').attr('type'), "radio", 'Check for type attribute' );
|
equals( jQuery('#radio1').attr('type'), "radio", 'Check for type attribute' );
|
||||||
|
@ -125,12 +125,16 @@ test("attr(String)", function() {
|
||||||
optgroup.appendChild( option );
|
optgroup.appendChild( option );
|
||||||
select.appendChild( optgroup );
|
select.appendChild( optgroup );
|
||||||
|
|
||||||
ok( jQuery("<div/>").attr("doesntexist") === undefined, "Make sure undefined is returned when no attribute is found." );
|
var $img = jQuery('<img style="display:none" width="215" height="53" src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif"/>').appendTo('body');
|
||||||
ok( jQuery().attr("doesntexist") === undefined, "Make sure undefined is returned when no element is there." );
|
equals( $img.attr('width'), "215", "Retrieve width attribute an an element with display:none." );
|
||||||
|
equals( $img.attr('height'), "53", "Retrieve height attribute an an element with display:none." );
|
||||||
|
|
||||||
// Check for style support
|
// Check for style support
|
||||||
ok( !!~jQuery('#dl').attr('style').indexOf('absolute'), 'Check style attribute getter' );
|
ok( !!~jQuery('#dl').attr('style').indexOf('absolute'), 'Check style attribute getter' );
|
||||||
ok( !!~jQuery('#foo').attr('style', 'position:absolute;').attr('style').indexOf('absolute'), 'Check style setter' );
|
ok( !!~jQuery('#foo').attr('style', 'position:absolute;').attr('style').indexOf('absolute'), 'Check style setter' );
|
||||||
|
|
||||||
|
ok( jQuery("<div/>").attr("doesntexist") === undefined, "Make sure undefined is returned when no attribute is found." );
|
||||||
|
ok( jQuery().attr("doesntexist") === undefined, "Make sure undefined is returned when no element is there." );
|
||||||
});
|
});
|
||||||
|
|
||||||
if ( !isLocal ) {
|
if ( !isLocal ) {
|
||||||
|
|
Loading…
Reference in a new issue