- 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;
|
||||
}
|
||||
};
|
||||
|
||||
// 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
|
||||
|
|
|
@ -549,7 +549,8 @@ jQuery.extend({
|
|||
|
||||
// Return the cloned set
|
||||
return clone;
|
||||
},
|
||||
},
|
||||
|
||||
clean: function( elems, context, fragment, scripts ) {
|
||||
context = context || document;
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ test("prop(String, Object)", function() {
|
|||
});
|
||||
|
||||
test("attr(String)", function() {
|
||||
expect(28);
|
||||
expect(30);
|
||||
|
||||
equals( jQuery('#text1').attr('type'), "text", '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 );
|
||||
select.appendChild( optgroup );
|
||||
|
||||
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." );
|
||||
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');
|
||||
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
|
||||
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("<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 ) {
|
||||
|
|
Loading…
Reference in a new issue