Luggi: scope in switch-konstrukt?!?

Beitrag lesen

Mittach,

Tja, wenn du uns nicht hilfst, dann wird das nichts. Zeig uns ein Beispiel wo dein Problem deutlich wird.

meine testumgebung 'test.xhtml':

  
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" dir="ltr">  
<head>  
  <meta http-equiv="content-language" content="de" />  
  <meta http-equiv="ontent-script-type" content="text/javascript" />  
  <meta http-equiv="content-style-type" content="text/css" />  
  <title>Test der Objekt-Arbeitsweise</title>  
  <script src="testObjects.js" type="application/javascript">  
  </script>  
  <script type="text/javascript">  
  /* <![CDATA[ */	  
/*testSwitchTestArray*/  
    function testSwitchTestArray() {  
      if (!TestObject)  
	  {  
	    document.getElementById("test_Switch").innerHTML = "Error: TestObject does not exist!";  
        return false;  
	  }  
	  document.getElementById("before_Switch").innerHTML = "Old Array: " + TestObject.getTestArray();  
		  
	  if (TestObject.switchTestArray('Typ 1') == false)  
	    document.getElementById("after_Switch1").innerHTML = "New array 1: Error";  
      else  
    	document.getElementById("after_Switch1").innerHTML = "New array 1: " + TestObject.getTestArray();  
      if (TestObject.switchTestArray('Typ 2') == false)  
	    document.getElementById("after_Switch2").innerHTML = "New array 2: Error";  
      else  
    	document.getElementById("after_Switch2").innerHTML = "New array 2: " + TestObject.getTestArray();  
	  return true;  
    }  
    /* ]]> */  
 </script>  
</head>  
<body>  
 <div>  
 <p class="TestName">Test der SwitchTestArray-Methode:</p>  
 <p>Bei diesem Test sollten sich die Eigenschaften zweimal &auml;ndern!</p>  
 <input type="button" name="Test" onclick="testSwitchTestArray();" value="Testen" />  
 <p class="TestData" id="test_Switch">  
   <span id="before_Switch"></span><br />  
   <span id="after_Switch1"></span><br />  
   <span id="after_Switch2"></span><br />  
 </p>  
 </div>  
</body>  
</html>  

mein script 'testObjects.js':

var TestObject = (function() {  
  var testArray = new Array('Text 1', 'Text 2', 'Text 3', 'Text 4',  
                            'Text 5', 'Text 6', 'Text 7');  
  return {  
  getTestArray: function() {return testArray;},  
  
  switchTestArray: function(Param) {  
    if (!Param)  
	  return false;  
	if ((Param != 'Typ 1') && (Param != 'Typ 2'))  
	  return false;  
	  
	switch(Param) {  
	  case 'Typ 1':  
	    var test = new Array('1', 'a', 'H', '>', 'ä', '"', '#');  
		testArray = test;  
	    break;  
	  case 'Typ 2':  
	    var test = new Array('&amp;', '&ouml;', '&auml;', '&uuml;', 'e', 'f', 'G');  
		testArray = test;  
	    break;  
	  default:  
	    break;  
	}  
	  
	return true;  
  }  
  } //return-ende  
}) ();