SaschaW: undefined?

Hallo ich habe folgendes script:

function switch_content(content) {

switch(content) {
 case "leer":
 var navi_content='';
 break;

document.write(content);

case "0":
 var navi_content='<a href="#"></a>';
 break;

case "1":
 var navi_content='<a href="#"></a>';
 break;

case "2":
 var navi_content='<a href="#"></a>';
 break;

case "3":
 var navi_content='<a href="#"></a>';
 break;

case "4":
 var navi_content='<a href="#"></a>';
 break;

case "5":
 var navi_content='<a href="#"></a>';
 break;

default:
 var navi_content = 'navi';
 break;

}

if (document.all)
 { document.all.navi.innerHTML = navi_content };

}

ich binde diese datei mittels

<script language="JavaScript" src="navi.js"></script>

ein!

und rufe es mittels

onMouseOver="style.backgroundColor='#99CCFF'; style.cursor='hand'; switch_content(1); return true;"

auf! leider kommt folgende fehlermeldung:

'1' ist undefiniert! was mache ich falsch?

Gruß
Sascha

  1. Hi,

    ich habe es nicht ausprobiert, könnte mir aber vorstellen, dass es daran liegt, dass beim Aufruf mit 1 die 1 als Zahl übergeben wird, in der Case-Abfrage wird aber nach 1 als String gesucht. Also entweder änderst Du den Aufruf, so dass die 1 als String übergeben wird: beispiel_funktion("1") oder Du änderst das Case, so dass auf eine Zahl überprüft wird: case 1:

    Viele Grüsse,

    Thorsten

  2. Hi Thorsten,

    switch(content) {
    case "leer":
    var navi_content='';
    break;

    document.write(content);

    case "0":
    var navi_content='<a href="#"></a>';
    break;

    usw. - das document.write(); steht nach dem break;, also innerhalb des switch() aber außerhalb jeder Definition eines Falls. Das wolltest Du doch so bestimmt nicht haben, oder?

    Grüße,

    Utz

    1. Hi Thorsten,

      switch(content) {
      case "leer":
      var navi_content='';
      break;

      document.write(content);

      case "0":
      var navi_content='<a href="#"></a>';
      break;

      usw. - das document.write(); steht nach dem break;, also innerhalb des switch() aber außerhalb jeder Definition eines Falls. Das wolltest Du doch so bestimmt nicht haben, oder?

      Grüße,

      Utz

      Hallo,

      danke für deine antwort! also naja das document.write ist nur so reingerutscht und gehört garnicht dazu!

      und das mit den zahlen 1,2,3 dort gehören eigentlich begriffe wie "home" hin was muss ich denn dann bei aufruf machen?

      so?
      onMouseOver="style.backgroundColor='#99CCFF'; style.cursor='hand'; switch_content('home'); return true;"

      oder so?
      onMouseOver="style.backgroundColor='#99CCFF'; style.cursor='hand'; switch_content(community); return true;"

      oder wie?

      Gruß
      Sascha

  3. Hallo SaschaW!

    ..ein bischen gekürzt, kommentiert und so:

    function switch_content(content)
    {
      // var navi_content="", //<--- wenn du es hier vereinbarst ist
                              // es auch nach dem Switch noch bekannt

    switch(content)
      {
      case "leer":
        var navi_content='';
        break;
      // ...
      } // <-- ab hier ist navi_content wieder unbekannt
        //     da es innerhalb des switch Blockes definiert wurde.

    document.all.navi.innerHTML = navi_content;
    }

    '1' ist undefiniert! was mache ich falsch?

    Du benutzt den falschen 'Browser' zum testen.
    Ein richtiger Browser hätte dir gesagt das navi_content undefiniert ist und auch noch die Zeilenummer dazu.

    (Mozilla benutzten, unter Tools->WebDevelopment->JavaScript Console zeigt der sehr schön die Fehler an.)

    Gruss,
     Carsten