Chris: Buttonzustände in Kombination mit Id-Wechslung

Hallo liebes Forum!
Habe Functions die 4 verschiedene Buttonzustände ausführn:

var ex = '.gif';
var folder = 'http://nic-ultra/OaI/images/';

var over = '_on';
var stay = '_stay';
var down = '_down';

var _click_ = null;
var old_onload = window.onload;
var old_onresize = window.onresize;
var imgName = new Array();

window.onresize = on_resize;

function start_mouse_over(doc)
{
 if(!doc) doc = self.document;
 if(!doc.images) return;
 for(var i = 0; i < doc.images.length; i++) {
  if(doc.images[i].name.indexOf('button') == 0)
   addEventsToImage(doc.images[i]);
  }
}

function addEventsToImage(img)
{
 img.onmouseover = on_mouse_over;
 img.onmouseout = on_mouse_out;
 img.onmousedown = on_mouse_down;
 img.onclick = on_click;

ImgName = imgName[img.name];

img.stay = new Image();
 img.stay.img = img;
 img.stay.onerror = function() { this.img.onclick = null;}
 img.stay.src = folder + ImgName + stay + ex;

img.over = new Image();
 img.over.img = img;
 img.over.onerror = function() { this.img.onmouseover = null;}
 img.over.src = folder + ImgName + over + ex;

img.down = new Image();
 img.down.img = img;
 img.down.onerror = function() { this.img.onmousedown = null;}
 img.down.src = folder + ImgName + down + ex;

img.out = img.src;
 if(window.name == img.name) img.onclick();
}

function on_mouse_down()
{
    if(_click_ == this) return false;
    this.src = this.down.src;
    return true;
}

function on_mouse_over()
{
    if(_click_ == this) return false;
    this.src = this.over.src;
    return true;
}

function on_mouse_out()
{
    if(_click_ == this) return false;
    this.src = this.out;
    return true;
}

function on_click()
{
    if(_click_ == this) return false;
    this.src = this.stay.src;
    if(_click_) _click_.src = _click_.out;
    _click_ = this;
    window.name = this.name;
    return true;
}

function on_resize()
{
    if(_click_) _click_.src = _click_.stay.src;
    if(old_onresize) old_onresize();
}

Dieses funktioniert soweit!
Jetzt hab ich aber links die mir auf meiner Seite Id's austauschen:

<a href='#' onmouseover="changeNavi('oai_navi',oai_pre)">
<img src="images/buttonn.gif" name="button0" border="0" id="oai_presentation"></a><img src="images/pre.gif" border="0" id="oai_presen">

function changeAnzeige(oai_anzeige,text){
 document.getElementById(oai_anzeige).innerHTML=text;
}

Funktioniert auch soweit bis ich weitere Links durch den Id-Austausch einsetze!
In diesem Fall funktionieren die Buttonzustände nicht mehr! Gibt es eine Lösung für mein Problem??? Wenn ihr noch mehr Code braucht um mein Problem zu lösen sagt nur bescheid, aber eigentlich müste sich der Fehler/ das Fehlende in den geposteten Code's verbergen / eingesetzt werden!
Danke für eure Mühe! Gruß Chris

  1. Hallo liebes Forum!
    Habe Functions die 4 verschiedene Buttonzustände ausführn:

    das kenn ich ;-)

    Funktioniert auch soweit bis ich weitere Links durch den Id-Austausch einsetze!
    In diesem Fall funktionieren die Buttonzustände nicht mehr! Gibt es eine Lösung für mein Problem??? Wenn ihr noch mehr Code braucht um mein Problem zu lösen sagt nur bescheid, aber eigentlich müste sich der Fehler/ das Fehlende in den geposteten Code's verbergen / eingesetzt werden!

    Es kommt drauf an was deine Funktion changeNavi macht.

    Struppi.

    1. Hallo Struppi,
      ach hab mich bloß vertan mit dem code den ich postete! Es gibt natürlich auch eine Funktion changeNavi, die bis auf den auszutauschenden Id-Namen eigentlich gleich ist:

      function changeNavi(oai_navi,text){
       document.getElementById(oai_navi).innerHTML=text;
      }

      Mit diese Funktion tausch ich wie der name schon sagt in der Navi den Inhalt!
      Der code der eingesetzt wird sieht so aus:

      var oai_pre='<a href='#' onclick="changeAnzeige('oai_anzeige',pre_faktura)"><img src="images/buttonk.gif" name="button20" border="0" id="pre_fak"></a><img src="images/fak.gif" border="0" id="pre_fakt"><a href='#' onclick="changeAnzeige('oai_anzeige',pre_stamm)"><img src="images/buttonk.gif" name="button21" border="0" id="pre_stammd"></a><img src="images/stamm.gif" border="0" id="pre_stamm"><a href='#' onclick="changeAnzeige('oai_anzeige',pre_produktion)"><img src="images/buttonk.gif" name="button22" border="0" id="pre_produktion"></a><img src="images/prod.gif" border="0" id="pre_pro"><a href='#' onclick="changeAnzeige('oai_anzeige',pre_einkauf)"><img src="images/buttonk.gif" name="button23" border="0" id="pre_einkauf"></a><img src="images/ein.gif" border="0" id="pre_ein"><a href='#' onclick="changeAnzeige('oai_anzeige',pre_ver)"><img src="images/buttonk.gif" name="button24" border="0" id="pre_ver"></a><img src="images/vers.gif" border="0" id="pre_vers"><a href='#' onclick="changeAnzeige('oai_anzeige',bde_pre)"><img src="images/buttonk.gif" name="button25" border="0" id="pre_betriebsdatenerfass"></a><img src="images/bde.gif" border="0" id="pre_BDE"><a href='#' onclick="changeAnzeige('oai_anzeige',pre_stat)"><img src="images/buttonk.gif" name="button26" border="0" id="pre_stat"></a><img src="images/stat.gif" border="0" id="pre_sta">'

      Die eindeutigen Namen sind auch vorhanden! Danke Gruß Chris

      1. Hallo Struppi,
        ach hab mich bloß vertan mit dem code den ich postete! Es gibt natürlich auch eine Funktion changeNavi, die bis auf den auszutauschenden Id-Namen eigentlich gleich ist:

        function changeNavi(oai_navi,text){
         document.getElementById(oai_navi).innerHTML=text;
        }

        Mit diese Funktion tausch ich wie der name schon sagt in der Navi den Inhalt!
        Der code der eingesetzt wird sieht so aus:

        und dann funktioniert das Skript nicht mehr?
        seltsam, was sagt die JS Konsole? irgendwelche Fehlermeldungen?

        Struppi.

        1. Hallo Struppi,
          nein ich bekomm keine Fehlermeldung in der Konsole! Das einzig ungewöhnliche ist das wenn ich auf einen solchen eingesetzten Button clicke, in dem Anzeigeberreich oai_navi volgendes gesetzt wird:
          [objekt HTMLImageElement]
          Danke Chris

          1. Hallo Struppi,
            nein ich bekomm keine Fehlermeldung in der Konsole! Das einzig ungewöhnliche ist das wenn ich auf einen solchen eingesetzten Button clicke, in dem Anzeigeberreich oai_navi volgendes gesetzt wird:
            [objekt HTMLImageElement]

            ist schwer so nachvollziehbar, eine Beispielseite wäre hilfreich.

            Struppi.

            1. Hallo Struppi,
              ich lade die Seide grad ins Netz dann geb ich bescheid, das du dir das mal selber ansehn kannst! Ich bau die alte Web grad um weshalb die neue noch kaum Inhalt hat!
              Bis denn........

              1. Hallo Struppi,
                so hab das jetzt hochgeladen! Die Adresse lautet http://www.o-a-i.de/OaI/
                Du müstest dann auf English oder Deutsch clicken! Dann Presetation, Produkte oder Info/Suche überwandern und einen der erscheinenden Buttons clicken! Diese erscheinenden Buttons führen die Buttonzustands-Funktion nicht aus!
                Es gibt eigentlich nur zwei Gründe die ich mir vorstelln könnte woran das liegt!

                Der erste is das ich die Buttons ja per javascript einsetzte diese aber nicht dierekt im HTML code reinschreibe(was man auch sieht wenn man nach überwandern sich den HTML-code aufruft) und daher der Buttonzustandswechsler ned funtzt!

                Der zweite Grund den ich mir vorstelln könnte ist, das ich die Buttonzustandsfuntionen so abgeändert habe das ich zwar immernoch eindeutige Namen hab aber trotzdem das gleiche .gif zweimal nutzen kann!

                Ich weiß nun aber absolut nicht wie ich was wo falsch gemacht hab bzw wo etwas fehlt!

                Danke für deine Mühe Gruß Chris

                1. Hallo Struppi,
                  so hab das jetzt hochgeladen! Die Adresse lautet http://www.o-a-i.de/OaI/
                  Du müstest dann auf English oder Deutsch clicken! Dann Presetation, Produkte oder Info/Suche überwandern und einen der erscheinenden Buttons clicken! Diese erscheinenden Buttons führen die Buttonzustands-Funktion nicht aus!

                  Also die Button funktionieren bei mir einwandfrei.
                  Im Mozilla passiert aber ausser dem Mouseoverbutton gar nichts, kein Menü nichts.

                  Struppi.

                  P.S. ich find persönlich solche Menüs auch nicht besonders geeignet für's Internet. Was soll das bringen, du schreibst ja keine Anwendung, sondern eine Seite, wo sich die Leute durchklicken wollen. Und je mehr Klicks umso glücklicher sind die Leute und nicht wegen irgendwelchen rumzappelnden Menüs (die dann bei vielen nicht mal funktionieren)