2010-11-25 5 views
1

Ich denke, ich vermisse hier etwas, aber ich kann wirklich nicht sehen, was es ist. Sollte eine außerhalb einer Funktion deklarierte Variable nicht auf der ganzen Seite verfügbar sein? Was ich hier versuche, habe ich schon vorher gesehen, also sollte die Grundidee funktionieren. In diesem Fall bekomme ich immer den Alarm, um mir "falsch" zu sagen, also denke ich, dass es immer eingibt, wenn also skipUserDataEntry einen undefinierten Wert anstelle von true hat. Hoffe jemand kann helfen.Javascript Kreuz-Scripts Variable Werte

<script type="text/javascript"> 
    skipUserDataEntry = true; 
    </script> 

    <script type="text/javascript"> 
     Ext.onReady(function() { 
     if (typeof skipUserDataEntry == "undefined") 
     var skipUserDataEntry = false; 
     alert (skipUserDataEntry); 
     } 
    </script> 

Antwort

5

Ein paar Probleme. Ihre globale Variable ist in Ordnung. Aber jede Variable, die innerhalb einer Funktion deklariert wird() ANYWHERE wird für diese WHOLE Funktion definiert.

Dies bedeutet, dass Ihre Zeilen lesen var skipUserDataEntry = false; ist eigentlich eine neue Variable skipUserDataEntry für den Funktionsumfang zu deklarieren, die globale Schatten.

Entfernen Sie die var und Sie werden nur die globale Bereichsvariable betrachten.

Ext.onReady(function() { 
    if (typeof skipUserDataEntry == "undefined") 
     skipUserDataEntry = false; 
    alert (skipUserDataEntry); 
    }); 

Zweitens fehlen Sie eine Endklammer.

+0

Die fehlende Klammer war ein Tippfehler, da ich andere Dinge auf der Ext.onReady ausgeführt habe, aber sie nicht eingefügt habe. Danke für die Hilfe, die Var funktioniert. –