Ich bin schockiert, dass:
a) niemand hier eine programmatische Lösung Einstellung erwähnt der datepicker z-Index b) Es gibt keine Option für den jQuery DatePicker, um einen z-Index zu übergeben, wenn er an ein Element gebunden wird.
Ich verwende eine js-Methode, um den höchsten Index zu berechnen. Wir überprüfen standardmäßig nur divs, da dies die wahrscheinlichsten Elemente sind, um einen z-index-Wert zu erhalten und verständlicherweise schneller als jedes Element auf der Seite zu analysieren.
/* Get the highest zindex for elements on the page
*/
function getHighestZIndex(element){
var index_highest = 0;
var index_current;
if(element == undefined){
element = 'div';
}
$(element).each(function(){
index_current = parseInt($(this).css("z-index"), 10);
if(index_current > index_highest) {
index_highest = index_current;
}
});
return index_highest;
}
Weil wir Javascript verwenden haben die Datepicker auf ein Element zu binden, dh $ (‚# some_element‘). Picker(), zu dieser Zeit, dass wir das Zielelement Stil gesetzt, so dass picker abholt die Z-Index von ihm. Dank Ronye Vernaes (in seiner Antwort auf dieser Seite) für den Hinweis auf, dass Datepicker() wird das Zielelement des z-Index abholen, wenn sie eine hat und an Position: relative:
$(this.target).datepicker();
var zindex = e.getHighestZIndex();
zindex++;
$(this.target).css('position','relative');
$(this.target).css('z-index',zindex);
this.target ist das Eingabeelement, das wir zu einem Datumsauswahlfeld machen. Zum Zeitpunkt der Bindung erhalten wir den höchsten Z-Index auf der Seite und erhöhen den Z-Index des Elements um eins. Wenn das datepicker-Symbol angeklickt wird, wird der Z-Index vom Eingabeelement übernommen, weil, wie Ronye Vernaes erwähnte, der Stil position: relativ ist.
In dieser Lösung versuchen wir nicht zu raten, was der höchste z-Index-Wert sein wird. Wir bekommen es tatsächlich.
Ich wechsle die zIndex Eigenschaft Dialog gleich 1 ist, und diesen Code pro Sie enthalten verwenden. Dieser Beitrag löst mein Problem. Danke. –
Um diese Antwort zu aktualisieren, muss sie nun z-index: 1002 sein. Der JQuery-Dialog verwendet einen Inline-Stil: 'style =" overflow: hidden; display: block; position: absolut; z-index: 1001; outline-farbe: -moz-use-text-color; umriss-style: none; outline -width: 0px; height: auto; width: 350px; oben: 309.5px; left: 413.5px; " –
Nach einigen weiteren Minuten scheint der jQuery-Dialog jedesmal seinen z-index zu erhöhen. Ich bin mir nicht sicher, ob das ein Bug ist oder nicht, aber wenn man den '# ui-datepicker-div' Z-Index auf 9999 setzt, behebt er es. –