Überschreiben Sie jQuery UI Datepicker div beim Laden der ersten Seite merkwürdig sichtbar.
Etwas seltsames im Gange, hier:
Einer Instanz der Datepicker ist, zeigt sich in einem seltsamen Ort, wie eine single-bar in der oberen linken Ecke des diese Seite.
Ich bin mit beiden jQuery-UI - Datepicker-und Akkordeon auf eine Seite. In der CSS-Datei für die UI, die display:none
für Datepicker zu sein scheint, außer Kraft gesetzt durch die display:block
für das Akkordeon, zumindest laut Firebug (siehe img unten).
Dann, wenn der Datepicker-trigger geklickt wird in der "catering - /event-Raum" - tab (klicken Sie auf eine der Schaltflächen, um zu zeigen div mit Datepicker) display:none
scheint dann arbeiten.
Hier ist, was die schlechte div sieht so aus:
und hier ist der Firebug-panel:
InformationsquelleAutor der Frage Adam | 2011-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem und während einige der oben genannten Lösungen arbeiten, ist die einfachste Lösung von allen ist, fügen Sie diese zu Ihrem css:
Diese im Grunde verbirgt die neu ausgerichtet datepicker-element, wenn es nicht gebunden an eine bestehende unsichtbare element. Sie verstecken es, aber es wird wieder initialisiert, wenn Sie auf ein element, das angezeigt werden muss der datepicker. Bei der re-Initialisierung, die datepicker-element mit id
#ui-datepicker-div
haben die richtige position.InformationsquelleAutor der Antwort alxbrd
Das problem könnte sein, dass Sie die Bindung der datepicker auf etwas, das nicht sichtbar ist, das wäre eine Erklärung für die seltsame Positionierung (versucht, Abstand von etwas, das nicht vorhanden ist, wird verkommen zur Aufrechnung von (0,0)). Der datepicker
<div>
sollte mindestens ein Tisch im inneren, damit es vielleicht der datepicker ist immer verwirrt, und eine Ausnahme werfen, bevor es initialisiert sich selbst. Wenn Sie klicken Sie auf eine der gebundenen Eingänge, es ist wahrscheinlich die Initialisierung selbst wieder (oder zumindest richtig Abschluss der Initialisierung) und alles funktioniert danach.Versuchen, die Bindung des datepicker, wenn das Datum eingegeben wird sichtbar:
$(".date_picker").datepicker({ disabled: false });
id="cater"
zu<input type="text" name="cater"/>
$('#cater').datepicker();
wenn die "reserve event-Raum" - Taste gedrückt wird.Wenn das funktioniert dann müsste man hinzufügen, die ähnliche hacks auch für andere datepickers. Wenn es nicht funktioniert, dann mache ich wohl falsch. Wenn meine Vermutung stellt sich heraus, im Recht zu sein, dann möchten Sie vielleicht, um einen Fehler zu melden, um die jQuery-UI-Menschen.
BTW, in Safari sehe ich nur die ersten beiden Tabletten, die ich hatte, wechseln zu Firefox, um zu sehen, die "catering" - Registerkarte. Seltsam genug, es funktioniert gut in Chrome. Dies ist wahrscheinlich in keinem Zusammenhang, aber ich dachte, ich würde Sie wissen lassen, sowieso.
InformationsquelleAutor der Antwort mu is too short
Das problem ist bis auf das element der datepicker wird gebunden, um noch nicht verfügbar.
Die Lösung, die ich fand, war zu initalize der datepicker, wenn das eigentliche element wurde geklickt und dann zeigt es direkt nach der Initialisierung. Dieser sorgt für das element verfügbar ist, bevor der datepicker wurde gebunden und zuerst entsprechend formatiert.
....
InformationsquelleAutor der Antwort Matt Ramsay
In meinem Fall, ich benutze die session "$(document).ready(function(){" JQuery zu meinen Gunsten.
Wie ich eine JavaScript-Datei, die geladen wird, auf allen Seiten von meinem system, ich habe gerade die folgende Zeile auf.
Für mich, es scheint eine klare und elegante Lösung, weil ich nicht haben, ändern Sie Ihre Bibliothek.
Beste von allem, es funktioniert gut auf allen Browsern. 🙂
InformationsquelleAutor der Antwort Alexandre Ribeiro
Ich hatte ein ähnliches problem in Chrome und ich es gelöst Bearbeitung
jquery-ui1.7.2.custom.css
aus:
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
:
Wahrscheinlich gibt es zu viele Neunen für Chrome.
InformationsquelleAutor der Antwort Jan Cintala
Versuchen Sie, den letzten block an der Unterseite der Seite (rechts vor dem schließen des body-Tags). Lesen Sie mehr darüber, warum Sie wollen, dies hier tun:
http://webdevel.blogspot.com/2008/09/place-javascript-code-at-bottom-of-page.html
BTW: Coole Idee für ein Menü. Ich mag es.
InformationsquelleAutor der Antwort chprpipr
Manchmal hat es zu tun mit dem z-index von einem anderen Element auf der Seite höher. Festlegen der z-index auf eine sehr hohe Anzahl mein Problem gelöst.
InformationsquelleAutor der Antwort hgolov