Datepicker: Don't use .zIndex(); implement the logic locally.

This commit is contained in:
Scott González 2013-03-15 06:53:09 -04:00
parent 43442c3196
commit ae9651931f

View File

@ -19,6 +19,28 @@ var PROP_NAME = "datepicker",
dpuuid = new Date().getTime(), dpuuid = new Date().getTime(),
instActive; instActive;
function getZindex( elem ) {
var position, value;
while ( elem.length && elem[ 0 ] !== document ) {
// Ignore z-index if position is set to a value where z-index is ignored by the browser
// This makes behavior of this function consistent across browsers
// WebKit always returns auto if the element is positioned
position = elem.css( "position" );
if ( position === "absolute" || position === "relative" || position === "fixed" ) {
// IE returns 0 when zIndex is not specified
// other browsers return a string
// we ignore the case of nested elements with an explicit value of 0
// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
value = parseInt( elem.css( "zIndex" ), 10 );
if ( !isNaN( value ) && value !== 0 ) {
return value;
}
}
elem = elem.parent();
}
return 0;
}
/* Date picker manager. /* Date picker manager.
Use the singleton instance of this class, $.datepicker, to interact with the date picker. Use the singleton instance of this class, $.datepicker, to interact with the date picker.
Settings for (groups of) date pickers are maintained in an instance object, Settings for (groups of) date pickers are maintained in an instance object,
@ -744,7 +766,7 @@ $.extend(Datepicker.prototype, {
if (!inst.inline) { if (!inst.inline) {
showAnim = $.datepicker._get(inst, "showAnim"); showAnim = $.datepicker._get(inst, "showAnim");
duration = $.datepicker._get(inst, "duration"); duration = $.datepicker._get(inst, "duration");
inst.dpDiv.zIndex($(input).zIndex()+1); inst.dpDiv.css( "z-index", getZindex( $( input ) ) + 1 );
$.datepicker._datepickerShowing = true; $.datepicker._datepickerShowing = true;
if ( $.effects && $.effects.effect[ showAnim ] ) { if ( $.effects && $.effects.effect[ showAnim ] ) {