mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
0b7246b6ee
This commit polyfills `jQuery.expr.pseudos` for old versions of jQuery. Fixes #15185 Closes gh-1773
102 lines
2.7 KiB
JavaScript
102 lines
2.7 KiB
JavaScript
/*!
|
|
* jQuery UI Support for jQuery core 1.7.x and newer @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: 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 )
|
|
);
|
|
};
|
|
}
|
|
|
|
// Support: jQuery 1.9.x or older
|
|
// $.expr[ ":" ] is deprecated.
|
|
if ( !$.expr.pseudos ) {
|
|
$.expr.pseudos = $.expr[ ":" ];
|
|
}
|
|
|
|
// Support: jQuery 1.11.x or older
|
|
// $.unique has been renamed to $.uniqueSort
|
|
if ( !$.uniqueSort ) {
|
|
$.uniqueSort = $.unique;
|
|
}
|
|
|
|
} ) );
|