Hanna: jQuery(document).ready() {...} lädt in Internet Explorer zu früh

Hallo Leute,

habe folgendes Problem:

Ich will mit JQuery u.a. zur Laufzeit den standardmäßig vorbelegten Wert einer Drop-Down-Box abfragen.

Nachdem ich schon zwei Jahre mit JQuery arbeite, weiß ich dass um meinen JS-Code die Funktion jQuery(document).ready{...} gemacht werden muss.
Damit wird sichergestellt, dass das DOM schon fertig geladen worden ist und auf die Elemente per JQuery zugegriffen werden kann ohne dass diese dann "undefined" sind.

Das ganze Funktioniert auch wunderbar im Firefox oder Safari.

Allerdings im Internet Explorer 8 kriege ich das Problem, dass mein ready-Event zu früh abgefeuert wird. Damit bekomme ich im IE 8 für eine Drop-Down-Box, die weit unten im HTML steht, den vorbelegten Wert "undefined" zurück.

Ich verstehe jetzt nicht so genau woran das liegt, weil in Firefox oder Safari funktioniert das ja auch wunderbar!

Weiß jemand von euch was ich da im Fall des Internet Explorers falsch mache?

Ich habe leider bei Google und in diesem Forum nichts brauchbares gefunden was mir hilft.

Hab schon einem Tipp gefolgt den ganzen Skript-Block erst nach dem HTML einzufügen, aber das hilft nicht.

Ich danke schon mal im Voraus für eure Antworten.

Viele Grüße Hanna

  1. Hi,

    Weiß jemand von euch was ich da im Fall des Internet Explorers falsch mache?

    Da du uns keinerlei Code zeigst, kann das natürlich niemand wissen.

    Ich vermute aber, dass du das Problem an der falschen Stelle suchst - und dass der ready-Event gar nicht Schuld ist, sondern du den Wert falsch ausliest.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hi Leute,

      danke für die Hinweise.

      Habe mein Problem jetzt letzte Woche gelöst!

      Es lag an den doppelten IDs, was ja nicht valide ist im HTML.
      War mir auch klar, dass ich das nicht so lassen kann, aber es hat im Firefox nicht gestört, weil ich eigentlich durch das Elternelement eindeutig war.

      Wollte ich dann eigentlich am Schluss umbauen, aber war wohl die falsche Entscheidung.

      Auf jeden Fall als ich das ganze HTML valide gemacht hatte, ging es auch im Internet Explorer.

      Also lag es wie Ihr gesagt habt nicht an der document.ready-Funktion.

      Danke noch mal für die Hinweise und vor allem auch Dank an EKKi, der mich noch mal auf die nicht validen IDs in meinem anderen Beitrag hingewiesen hatte. Da hatte ich nämlich auch dann mein HTML abstrakt reingestellt.

      Sorry für da Doppelposting, aber ich habe gedacht ich hätte diesen Beitrag nicht gespeichert, weil mein Link, den ich mir gebockmarkt hatte, ging irgendwie auf die Seite wo man die Nachricht neu erstellt. Mit der Suche hatte ich irgendwie auch nichts gefunden.

      Naja und Code hätte ich euch dann noch reingeschrieben. Wollte nur erstmal wissen ob Ihr diesen überhaupt braucht, weil es kann ja sein, dass es wirklich an der document.ready-Funktion gelegen hätte. Wusste nur an dem einen Tag nicht, wie ich euch das abstrakt darstellen soll. War halt relativ umfangreich! Naja auf eine passende Darstellung bin ich erst später gekommen, aber da habe ich den Beitrag nicht mehr gefunden :-/...

      Vielen Grüße

      Hanna

  2. Hi,

    Allerdings im Internet Explorer 8 kriege ich das Problem, dass mein ready-Event zu früh abgefeuert wird. Damit bekomme ich im IE 8 für eine Drop-Down-Box, die weit unten im HTML steht, den vorbelegten Wert "undefined" zurück.

    tu der Menschheit bitte einen Gefallen und gehe niemals in die Politik, auch wenn Deine Interpretationen denen eines durchschnittlichen Spitzenpolitikers entsprechen.

    Ich verstehe jetzt nicht so genau woran das liegt, weil in Firefox oder Safari funktioniert das ja auch wunderbar!

    Tja, komisch, hm? Dann lies den Wert des Dropdowns doch mal zu einem geeigneten Zeitpunkt aus, ohne $(document).ready() zu verwenden.

    Hab schon einem Tipp gefolgt den ganzen Skript-Block erst nach dem HTML einzufügen, aber das hilft nicht.

    Richtig. Mit jQuery hat das aber nichts zu tun.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. moin Hanna,

    Ich will mit JQuery u.a. zur Laufzeit
    Nachdem ich schon zwei Jahre mit JQuery arbeite, weiß ich dass um meinen JS-Code die Funktion jQuery(document).ready{...}

    ja was nu: zur Laufzeit (also _wärend_ das Dokument gerendert wird) oder mit $(document).ready() (also _nachdem_ das DOM vollständig ist). Möglicherweise solltest Du Deinen Versuch mal _ohne_ document.ready, aber direkt im Dokument - an einer Stelle _nach_ dem besagtem Select - durchführen.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.