mirror of
https://github.com/jquery/jquery.git
synced 2026-02-01 05:05:02 -05:00
No ticket. Abstract conditional hook definition.
This commit is contained in:
33
src/css/addGetHookIf.js
Normal file
33
src/css/addGetHookIf.js
Normal file
@@ -0,0 +1,33 @@
|
||||
define( function() {
|
||||
|
||||
function addGetHookIf( hookVar, conditionFn, hookFn ) {
|
||||
// Define the hook, we'll check on the first run if it's really needed.
|
||||
hookVar = {
|
||||
get: function() {
|
||||
var condition = conditionFn();
|
||||
|
||||
if ( condition == null ) {
|
||||
// The test was not ready at this point; screw the hook this time
|
||||
// but check again when needed next time.
|
||||
return;
|
||||
}
|
||||
|
||||
if ( condition ) {
|
||||
// Hook not needed (or it's not possible to use it due to missing dependency),
|
||||
// remove it.
|
||||
// Since there are no other hooks for marginRight, remove the whole object.
|
||||
delete hookVar.get;
|
||||
return;
|
||||
}
|
||||
|
||||
// Hook needed; redefine it so that the support test is not executed again.
|
||||
hookVar.get = hookFn;
|
||||
|
||||
return hookVar.get.apply( hookVar, arguments );
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return addGetHookIf;
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user