2012-03-24 13 views
1

Ich versuche, eine Datumsauswahl zu entwickeln. Ich bereite einen vollständigen Kalender in einer JavaScript-Zeichenfolge vor und hängt es an ein div Element an. Das Problem ist, dass sich das jQuery-Klickereignis anders verhält. Wenn ich den gesamten Code in eine .js-Datei unter $(document).ready() Ereignis schreibe und diese Skriptdatei am Anfang der HTML-Datei hinzufüge, funktionieren die Klickereignisse nicht richtig (Das heißt, wenn ich im Monat März bin, wenn ich auf Weiter klicke , der Kalender navigiert zum nächsten Monat April, aber dann, wenn ich darauf klicke, bekomme ich immer den alten Monat).Jquery verhält sich anders

Wenn ich das gesamte Skript am Ende der HTML-Datei (nach dem Body-Tag) schreiben, funktioniert es gut.

Wenn ich diesen Code in jsFiddle setzen. Es funktioniert auch dort. Ich denke, sie fügen Skriptcode unten auf der Seite hinzu.

Was könnte falsch sein, wenn der Code in einem $(document).ready() Event-Handler ist? Hier ist the jsFiddle link.

+0

Erhalten Sie irgendwelche JavaScript-Fehler beim Ausführen mit dem JS an der Spitze Ihres HTML? – Jacob

+0

Nein. Es gibt keine Fehler..Es funktioniert gut bis zum ersten Klick..Dann funktioniert es nicht richtig .. –

Antwort

0

Ich nehme an, das passiert für Sie in IE. Ich konnte es reproduzieren. Der Browser wurde im "Quirks-Modus" ausgeführt. In diesem Modus ist die indexOf-Funktion für Array nicht definiert. Dieser JavaScript-Fehler verhindert das einwandfreie Funktionieren der Kalenderauswahl. Durch das Wechseln vom Quirks-Modus wurde das Problem behoben.

Um zu beheben, können Sie sicherstellen, dass Sie eine ordnungsgemäße DOCTYPE für die Seite definiert haben oder ein Meta-Tag wie <meta http-equiv="X-UA-Compatible" content="IE=edge" /> haben, die Quirks-Modus vermeidet.

Ich bin mir noch nicht sicher, warum das Verschieben des Skripts verschiedene Modi auslöst. Vielleicht kennt jemand anderes auf SO die Antwort darauf.

+0

Ich führe es in IE 9..Es gibt mir Recht Index.Das Problem ist, dass, wenn überhaupt klicken Als nächstes erhalte ich den Monatsnamen des Tags, dessen ID DP_MONTH ist, finde den Index des Monats aus monthArray und inkrementiere ihn dann. $ ('# DP_MONTH'). text() kommt rechts beim ersten Klick Auf Wards gibt es immer März, obwohl das Tag einen anderen Monatsnamen hat, So dass es April-Monat nur bei jedem nächsten Klick zeigt. Ich hoffe, du hast meinen Punkt ..... –

+0

Ich kann das nicht reproduzieren. Könnten Sie Ihren HTML-Code veröffentlichen, damit wir sehen können, wie genau Sie Ihr Skript einbinden, wenn dieses Problem auftritt? – Jacob

+0

Danke, ich könnte dieses Problem auf eine andere Art und Weise lösen ... Wie auch immer es funktioniert gut ... –