Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable fülllt(e) sich eigenständig mit Inhalt außerhalb von <script>

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variable fülllt(e) sich eigenständig mit Inhalt außerhalb von <script>

    Hallo,
    bin bei einem Projekt auf etwas seltsames gestoßen.
    ich versuche es zu beschreiben, soweit ich mich erinnere.

    Die Variable "examplevar" ist im Script erstmal undefined. Aber sie füllt(e) sich in der ersten Sekunde mit einer div-box-Zeile, war also doch nicht undefined. Sie wird erst nach einem Klick mit dem richtigen Wert gefüllt.

    Die Variable füllt sich vor dem Klick, also bei Aufruf des Scripts, nach Ausgabe von console.log() mit diesem Wert:
    Code:
    console.log(examplevar)
    <div id="examplevar" style="display:none;"></div>
    Die div-box-Zeile stand nicht im <script>, sondern außerhalb.

    Problem war, den Inhalt von examplevar zu erkennen und ein if (...) examplevar = 0 zu setzen, da sie ja gar nicht undefined war.
    Code:
    if (typeof examplevar === "undefined") {
    examplevar = 0;
    }
    Erst nachdem die div-box-Zeile gelöscht wurde war/ist examplevar undefined:
    Code:
    console.log(examplevar) // examplevar is not defined
    Weitere Lösungsvorschläge sind nicht nötig.

    Weiteren code oder gar ein JSFiddle mit dem kompletten Script will ich nicht posten.

    Frage: Wieso füllte sich die Variable mit der div-box-Zeile? Ist das schonmal jemanden passiert? Kommt sowas öfters vor?

  • #2
    Element ID´s sind globale Variablen....

    Kommentar


    • #3
      PHP-Code:
      var examplevar
      soll helfen.
      Signaturrrrrrr

      Kommentar


      • #4
        Zitat von kaminbausatz Beitrag anzeigen
        Element ID´s sind globale Variablen....
        man lernt nie aus.
        https://books.google.de/books?id=ZS-...iablen&f=false

        Zitat von K313 Beitrag anzeigen
        PHP-Code:
        var examplevar
        soll helfen.
        Hilft nicht, weil globale Variable.

        Kommentar


        • #5
          Sowas kann eigentlich nur passieren, wenn man unsauber programmiert. Also Variablen vor deren Verwendung nicht deklariert.
          HTML-Code:
          <div id="examplevar" style="display:none;"></div>
          <script>
              (function () {
                  var examplevar;
                  alert('Local variable: ' + typeof examplevar);
                  alert('Global variable: ' + typeof window.examplevar);
              })();
          </script>
          https://jsfiddle.net/3b4o13n4/1/

          Kommentar


          • #6
            Zitat von psoido Beitrag anzeigen
            Hilft nicht, weil globale Variable.
            Na dann, viel Glück!

            Signaturrrrrrr

            Kommentar


            • #7
              eine neue Div-Box ID und die Sache war geregelt.
              Problem war, dass ich davon ausging, dass sie undefined ist.
              und dann sehe ich die div-box als Inhalt und war leicht verwundert, wie ich das geschafft hatte.
              aber dann war ich es ja gar nicht wirklich, wie ich hier erfahren habe, sondern eine "Marotte der Programmierer".

              Kommentar


              • #8
                Zitat von psoido Beitrag anzeigen
                aber dann war ich es ja gar nicht wirklich, wie ich hier erfahren habe, sondern eine "Marotte der Programmierer".
                Doch, eigentlich warst schon du das. Denn bei meinem gezeigten Code tritt das Verhalten nicht auf. Folglich liegt der Fehler in deinem Code.

                Kommentar

                Lädt...
                X