Dirk2000: Wertübergabe an eine andere Funktion

Hallo liebe Spezialisten,

mir scheint ein dummer Anfängerfehler zu unterlaufen....
Habe eine Seite mit Layern. Diese Layer will ich visible oder hidden setzen. Kein Problem bei Bildchen.
Mittels Macromedia Dreamweaver hab ich ja die nachstehende Funktion MM_showHideLayers().
Jetzt will ich das show oder hidden-Argument mittels eines normalen Auswahlistenmenu übergeben.

Übergebe ich "document.Artikel.Auswahl.options[n].value" an die Funktion alert(), erhalte ich den String 'Layer1','','show','Layer2','','hide' als Rückmeldung. So wäre es richtig....
Übergebe ich jedoch den gleichen String als Parameterübergabe an die Funktion MM_showHideLayers(document.Artikel.Auswahl.options[n].value) passiert nichts... nichtmal ne Fehlermeldung :-).

Was läuft hier schief??
Schon mal vielen Dank
Dirk2000

<script language="JavaScript">
function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function SelectMenu()
{
for(n=0; n<document.Artikel.Auswahl.length; n++)
if(document.Artikel.Auswahl.options[n].selected == true)
/*alert(document.Artikel.Auswahl.options[n].value);*/
MM_showHideLayers(document.Artikel.Auswahl.options[n].value);
}
</script>

<form name="Artikel">
  <select name="Auswahl" onChange="SelectMenu()">
    <option selected>select
<option value="'Layer1','','show','Layer2','','hide'">Tutankamon
    <option value="'Layer2','','show','Layer1','','hide'">Reina Tiye
    <option value="'Layer3','','show','Layer2','','hide'">Ibis</option>
</select>
</form>

  1. Hi,

    function MM_showHideLayers() { //v3.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
        if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
        obj.visibility=v; }
    }

    Guck dir mal in Self das Kapitel über JS-Funktionen und
    Parameter-Übergabe an.

    function funktionsname(parameter1, parameter2)
    {
    alert(parameter1 + " " + parameter2);
    }

    mfg
    CK1

  2. Hi,

    Bei

    MM_showHideLayers(document.Artikel.Auswahl.options[n].value)

    wird vermutlich nur _ein_ Argument übergeben, das ein langer String mit mehreren Kommas ist. Die Funktion braucht aber einzelne Argumente. Versuch mal

    eval('MM_showHideLayers('+document.Artikel.Auswahl.options[n].value+')');

    Außerdem sollte

    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }

    ^^^
    sicherlich ein == sein.

    Gruß
    Steffen

  3. Hallo Steffen, hallo Christian,

    vielen dank für Eure Hilfe, es funzt.....
    wusste doch dass ich da was übersehen hatte... nur was...
    Also nochmals vielen Dank
    Gruss Dirk

    Hallo liebe Spezialisten,

    mir scheint ein dummer Anfängerfehler zu unterlaufen....