]> source.dussan.org Git - jquery-ui.git/commitdiff
Datepicker: Don't use .zIndex(); implement the logic locally.
authorScott González <scott.gonzalez@gmail.com>
Fri, 15 Mar 2013 10:53:09 +0000 (06:53 -0400)
committerScott González <scott.gonzalez@gmail.com>
Fri, 15 Mar 2013 10:53:09 +0000 (06:53 -0400)
ui/jquery.ui.datepicker.js

index efee7a81900d48e556a02c414d1b57684bbbe602..5892e2ddc54951ad872188a477f6e4651aa02e36 100644 (file)
@@ -19,6 +19,28 @@ var PROP_NAME = "datepicker",
        dpuuid = new Date().getTime(),
        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.
    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,
@@ -744,7 +766,7 @@ $.extend(Datepicker.prototype, {
                if (!inst.inline) {
                        showAnim = $.datepicker._get(inst, "showAnim");
                        duration = $.datepicker._get(inst, "duration");
-                       inst.dpDiv.zIndex($(input).zIndex()+1);
+                       inst.dpDiv.css( "z-index", getZindex( $( input ) ) + 1 );
                        $.datepicker._datepickerShowing = true;
 
                        if ( $.effects && $.effects.effect[ showAnim ] ) {