diff options
author | Alexander Schmitz <arschmitz@gmail.com> | 2015-07-15 18:28:30 -0400 |
---|---|---|
committer | Alexander Schmitz <arschmitz@gmail.com> | 2015-08-08 00:29:36 -0400 |
commit | 2d03e1280a3671468aba6d48d60ba9381fe90e19 (patch) | |
tree | 74d6444282d8b78963744add9e502f615acdf160 /ui/jquery-1-7.js | |
parent | 2c92f1074718ee23081765da0b86a8e3fe906874 (diff) | |
download | jquery-ui-2d03e1280a3671468aba6d48d60ba9381fe90e19.tar.gz jquery-ui-2d03e1280a3671468aba6d48d60ba9381fe90e19.zip |
Core: Move backcompat for core 1.7 into its own module
Ref #9647
Diffstat (limited to 'ui/jquery-1-7.js')
-rw-r--r-- | ui/jquery-1-7.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/ui/jquery-1-7.js b/ui/jquery-1-7.js new file mode 100644 index 000000000..29e008e8a --- /dev/null +++ b/ui/jquery-1-7.js @@ -0,0 +1,89 @@ +/*! + * jQuery UI Support for jQuery core 1.7.x @VERSION + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + */ + +//>>label: jQuery 1.7 Support +//>>group: UI Core +//>>description: Support version 1.7.x of jQuery core + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +// support: jQuery 1.7 only +// Not a great way to check versions, but since we only support 1.7+ and only +// need to detect <1.8, this is a simple check that should suffice. Checking +// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0 +// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting +// 1.7 anymore). See #11197 for why we're not using feature detection. +if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) { + + // Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight() + // Unlike jQuery Core 1.8+, these only support numeric values to set the + // dimensions in pixels + $.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; + if ( border ) { + size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; + } + } ); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each( function() { + $( this ).css( type, reduce( this, size ) + "px" ); + } ); + }; + + $.fn[ "outer" + name ] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each( function() { + $( this ).css( type, reduce( this, size, true, margin ) + "px" ); + } ); + }; + } ); + + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +} ) ); |