aboutsummaryrefslogtreecommitdiffstats
path: root/src/css.js
diff options
context:
space:
mode:
authorMichał Gołębiowski <m.goleb@gmail.com>2013-09-11 02:51:48 +0200
committerMichał Gołębiowski <m.goleb@gmail.com>2013-09-11 02:51:48 +0200
commitf7111fb0e521b063250a09dd116d970a3d6556fd (patch)
treea6a3fec6da16399f5e7cc35a198db2a676329411 /src/css.js
parent5fbf4a4fe32c2d0f9235df5bc5d4a89f61f87330 (diff)
downloadjquery-f7111fb0e521b063250a09dd116d970a3d6556fd.tar.gz
jquery-f7111fb0e521b063250a09dd116d970a3d6556fd.zip
No ticket. Abstract conditional hook definition.
Diffstat (limited to 'src/css.js')
-rw-r--r--src/css.js72
1 files changed, 18 insertions, 54 deletions
diff --git a/src/css.js b/src/css.js
index a7c9e1c6f..18815ca0d 100644
--- a/src/css.js
+++ b/src/css.js
@@ -10,6 +10,7 @@ var
isHidden = require( "./css/var/isHidden" ),
support = require( "./css/support" ),
defaultDisplay = require( "./css/defaultDisplay" ),
+ addGetHookIf = require( "./css/addGetHookIf" ),
getStyles, curCSS,
ralpha = /alpha\([^)]*\)/i,
@@ -512,69 +513,32 @@ if ( !support.opacity ) {
};
}
-jQuery.cssHooks.marginRight = {
- get: function( elem, computed ) {
- var reliableMarginRight = support.reliableMarginRight();
- if ( reliableMarginRight == null ) {
- // The test was not ready at this point; screw the hook this time
- // but check again when needed next time.
- return;
- }
-
- if ( reliableMarginRight ) {
- // Hook not needed, remove it.
- // Since there are no other hooks for marginRight, remove the whole object.
- delete jQuery.cssHooks.marginRight;
- return;
+addGetHookIf( jQuery.cssHooks.marginRight, support.reliableMarginRight,
+ function ( elem, computed ) {
+ if ( computed ) {
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+ // Work around by temporarily setting element display to inline-block
+ return jQuery.swap( elem, { "display": "inline-block" },
+ curCSS, [ elem, "marginRight" ] );
}
-
- jQuery.cssHooks.marginRight.get = function ( elem, computed ) {
- if ( computed ) {
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
- // Work around by temporarily setting element display to inline-block
- return jQuery.swap( elem, { "display": "inline-block" },
- curCSS, [ elem, "marginRight" ] );
- }
- };
-
- return jQuery.cssHooks.marginRight.get( elem, computed );
}
-};
+);
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
// getComputedStyle returns percent when specified for top/left/bottom/right
// rather than make the css module depend on the offset module, we just check for it here
jQuery.each( [ "top", "left" ], function( i, prop ) {
- jQuery.cssHooks[ prop ] = {
- get: function( elem, computed ) {
- var pixelPosition = support.pixelPosition();
-
- if ( pixelPosition == null ) {
- // The test was not ready at this point; screw the hook this time
- // but check again when needed next time.
- return;
- }
-
- if ( pixelPosition || !jQuery.fn.position ) {
- // Hook not needed or impossible to apply due to a missing module, remove it.
- // Since there are no other hooks for prop, remove the whole object.
- delete jQuery.cssHooks[ prop ];
- return;
+ addGetHookIf( jQuery.cssHooks[ prop ], support.pixelPosition,
+ function ( elem, computed ) {
+ if ( computed ) {
+ computed = curCSS( elem, prop );
+ // if curCSS returns percentage, fallback to offset
+ return rnumnonpx.test( computed ) ?
+ jQuery( elem ).position()[ prop ] + "px" :
+ computed;
}
-
- jQuery.cssHooks[ prop ].get = function ( elem, computed ) {
- if ( computed ) {
- computed = curCSS( elem, prop );
- // if curCSS returns percentage, fallback to offset
- return rnumnonpx.test( computed ) ?
- jQuery( elem ).position()[ prop ] + "px" :
- computed;
- }
- };
-
- return jQuery.cssHooks[ prop ].get( elem, computed );
}
- };
+ );
});