kostenloser Webspace werbefrei: lima-city


Varible in schleife fehlerhaft

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Halli Hallo,

    ich stehe mal wieder auf dem Schlauch, vielleicht kann mich mal einer mit der Nase in den Fehler stupsen.
    Es geht wie immer bei mir um JS in Greasemonkey.

    Folgendes Problem:

    Ich prüfe in mehreren if Anweisungen bestimmte Voraussetzungen und belege unterschiedliche Variablen. Leider wird mir immer nur eine Variable vergeben und ein wird „übergangen“.

    Die Variable
    minuten_streunen
    wird richtig vergeben.
    Die Variable
    bg_streuner
    wird einfach übergangen und nicht belegt.
    Ich vermute mal ich habe irgendwo einen Fehler in den if´s. Wobei ich nicht weiß wo, da eine Variable ja immer belegt wird.

    if (stadt == 'sylt') //prüfen ob sylt gespielt wird				
    {				
    if (ht_streuner_off >0) //wenn counter aktiv und größer >0		   	  
     {				
    var	minuten_streunen = 'Noch '+ Math.floor( (ht_streuner_off%3600) / 60 ) +' min streunen';				
    var bg_streuner = 'style="background-color: #0C0;cursor: pointer;" title="Dein Streuner ist unterwegs"'; // hier ist der Fehler, es wird nichts belegt	   
    }   				
    if (ht_streuner_off <1) //wenn counter kleiner als 1			  
     {				
    var	minuten_streunen = 'Streuner hat Langeweile!!';				
    var bg_streuner = 'style="background-color: #F00;cursor: pointer;" title="Du kannst den Streuner wieder auf die Reise schicken"';// hier ist der Fehler, es wird nichts belegt	   
     }			  
     }				
     else				  
     {					
    var	minuten_streunen = ''; 							
    var bg_streuner = '';
    					   }


    Die Ausgabe dazu ist folgende:
    // der übersicht wegen habe ich mal nur den Teil um den es geht aus der Tabelle gepostet.
    <td '+bg_ht_wb+''+bg_streuner+'>'+minuten_streunen+'</td>


    '+bg_ht_wb+'
    wird in dem Fall als
    bg_ht_wb = '';
    belegt. (richtig)

    '+bg_streuner+'
    wird einfach übergangen. (falsch)

    '+minuten_streunen+'
    wird richtig belegt. (richtig)

    ht_streuner_off
    wird richtig ermittelt und vergeben.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Findet die Ausgabe in der gleichen Funktion wie die Belegung statt?
    Schau dir mal das hier an: http://www.mredkj.com/tutorials/reference_js_intro_ex.html
    Ich vermute
    minuten_streunen
    ist schon irgendwo global definiert, wird demzufolge richtig belegt.
    bg_streuner
    ist nicht global, gilt also nur in der Funktion, und ist dann bei der Ausgabe nicht definiert.

    mfg
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Wenn du
    var
    verwendest definierst du die Variable dort. Wenn du es dir sparst wird es funktionieren, oder du definierst die Variablen außerhalb der if-Anweisung. Das ganze nennt sich "Gültigkeitsbereiche von Variablen" ;-)

    Also in etwa so:
    var minuten_streunen = '';
    var bg_streuner = '';
    if(bla bla)
        …
    // die Variablen sind richtig belegt
  5. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    hackyourlife schrieb:
    Wenn du
    var
    verwendest definierst du die Variable dort. Wenn du es dir sparst wird es funktionieren, oder du definierst die Variablen außerhalb der if-Anweisung. Das ganze nennt sich "Gültigkeitsbereiche von Variablen" ;-)


    1000 Dank, ohne
    var
    geht es jetzt wie gewünscht, allerdings habe ich da mal noch eine Frage.
    Die Variable
    minuten_streunen
    wird mit
    var
    definiert und löst den Fehler nicht aus.
    Definert wird
    minuten_streunen
    auch nur in der if Anweisung. Warum wird die richtig vergeben und bei der anderen muss ich
    var
    entfernen?

    if (stadt == 'sylt') //prüfen ob sylt gespielt wird
    						{
    
    		   				if (ht_streuner_off >0) //wenn counter aktiv und größer >0
    				   	   {
    						var	minuten_streunen = 'Noch '+ Math.floor( (ht_streuner_off%3600) / 60 ) +' min streunen';
    						bg_streuner = 'style="background-color: #0C0;cursor: pointer;" title="Dein Streuner ist unterwegs"'; // 
    					   }
    		   				if (ht_streuner_off <1) //wenn counter kleiner als 1
    					   {
    						var	minuten_streunen = 'Streuner hat Langeweile!!';
    						bg_streuner = 'style="background-color: #F00;cursor: pointer;" title="Du kannst den Streuner wieder auf die Reise schicken"';
    					   }
    
    					   }
    						 else
    					   {
    						var	minuten_streunen = ''; 
    						bg_streuner = '';
    					   }


    Beitrag zuletzt geändert: 8.11.2012 14:24:37 von aff3m1tw4ff3
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!