glowhead: Buttonzustände funktioniern nicht mehr!!

moin liebes forum!
mein problem ist das mein button-wechsel als ich den ersten und zweiten Button mit meinen Funktionen belegte alles so funktionierte wie ich mir das vorstell! nach dem dritten spinnen nun alle drei variantencih poste ma nur eine der funktionen denn sie sind total identisch bis auf die namen der Button:

var b = new Array();
 b[0] = new Image(); b[0].src = "b.gif";
 b[1] = new Image(); b[1].src = "b_active.gif";
 b[2] = new Image(); b[2].src = "b_isactive.gif";
 b[3] = new Image(); b[3].src = "b_wasactive.gif";

var h = new Array();
 h[0] = new Image(); h[0].src = "b_h.gif";
 h[1] = new Image(); h[1].src = "b_hactive.gif";
 h[2] = new Image(); h[2].src = "b_hisactive.gif";
 h[3] = new Image(); h[3].src = "b_hwasactive.gif";

var in = new Array();
 in[0] = new Image(); in[0].src = "b_in.gif";
 in[1] = new Image(); in[1].src = "b_inactive.gif";
 in[2] = new Image(); in[2].src = "b_inisactive.gif";
 in[3] = new Image(); in[3].src = "b_inwasactive.gif";

var ma = new Array();
 ma[0] = new Image(); ma[0].src = "b_m.gif";
 ma[1] = new Image(); ma[1].src = "b_mactive.gif";
 ma[2] = new Image(); ma[2].src = "b_misactive.gif";
 ma[3] = new Image(); ma[3].src = "b_mwasactive.gif";

var nr = 0;
var cha = "yes";
var but = "";
var sub = "b.gif"

function mOver(nr) {
 but = document.images[nr].src;
 sub = but.substr(17, 22);
 if (cha  == "yes")
 document.images[nr].src = b[1].src;
}
function mOut(nr) {
 if (cha == "yes" && sub == "b.gif") {
  document.images[nr].src = b[0].src;
 }
 if (cha == "yes" && sub == "b_isactive.gif") {
  document.images[nr].src = b[2].src;
 }
 if (cha == "yes" && sub == "b_wasactive.gif") {
  document.images[nr].src = b[3].src;
 }
 if (cha  == "no") {
  cha = "yes";
 }
}
function mClick(nr) {
 cha = "no";
 document.images[nr].src = b[2].src;
}
function mClickwas(nr) {
 cha = "yes";
 document.images[nr].src = b[3].src;
}

für die variablen in h und ma gibt es halt diese funktionen mit anderen namen nochmal und diese hab ich schon mehrfach überprüft!
ich poste jetzt noch einen der button damit ihr diese auch dazu seht:

<td width="100" align="center"><a href="javascript:sprachanzeige_link('bde_')">
<img src="b.gif" onmouseover="mOver('4')" onmouseout="mOut('4')" onClick="mClick('4')" onBlur="mClickwas('4')" border="0" alt="Betriebsdatenerfassung"><br> microBDE </a></td>

Die java-script console sagt folgendes:

Error: missing variable name
Source File: http://nic-ultra/ChangeButton.js
Line: 13, Column: 4
Source Code:
var in = new Array();

Error: inOver is not defined

Error: inOut is not defined

kann mir jemand helfen, hab ihr nen plan warum das plötzlich nicht mehr geht?
Danke im vorraus mfg glowhead

  1. moin liebes forum!
    mein problem ist das mein button-wechsel als ich den ersten und zweiten Button mit meinen Funktionen belegte alles so funktionierte wie ich mir das vorstell! nach dem dritten spinnen nun alle drei variantencih poste ma nur eine der funktionen denn sie sind total identisch bis auf die namen der Button:

    Ich habe sowas geschrieben. Das kannst du einbimnden, ohne eine Zeile JS in deinen Quelltext schreiben zu müssen http://home.arcor.de/struebig/js/mouse_over/mouse_over.htm

    var nr = 0;
    var cha = "yes";

    Dafür gibt es true/false

    var cha = true;

    var but = "";
    var sub = "b.gif"

    function mOver(nr) {
     but = document.images[nr].src;

    Bist du sicher, das das Bild mit dem Index existiert?
    Bist du sicher das du nie in dein Dokument ein anderes Bild einfügen wirst?

    Mit anderen Worten, der Index ist der ungünstigste Wert um sowas zu machen, und wenn dann solttest du den Wert auch checken, zmuindest in der Testphase:
    Also davor einfügen:

    if(!document.images) return;
    if(!document.images[nr]) return alert('Bild: ' + nr + ' existiert nicht.');

    sub = but.substr(17, 22);

    but ist ein Leerstring?

    if (cha  == "yes")

    if(cha)

    document.images[nr].src = b[1].src;

    }
    function mOut(nr) {
     if (cha == "yes" && sub == "b.gif") {

    if(cha && sub == '..'

    document.images[nr].src = b[0].src;
     }
     if (cha == "yes" && sub == "b_isactive.gif") {
      document.images[nr].src = b[2].src;
     }
     if (cha == "yes" && sub == "b_wasactive.gif") {
      document.images[nr].src = b[3].src;
     }
     if (cha  == "no") {
      cha = "yes";

    if(!cha) cha = true;

    }
    }
    function mClick(nr) {
     cha = "no";
     document.images[nr].src = b[2].src;
    }
    function mClickwas(nr) {
     cha = "yes";

    cha = true;

    document.images[nr].src = b[3].src;

    und auch hier überprüfen ob es das Bild gibt.

    Error: inOver is not defined

    Error: inOut is not defined

    kann mir jemand helfen, hab ihr nen plan warum das plötzlich nicht mehr geht?

    Diese Beide inOut/inOver kommen überhaupt nicht in deinen Code vor, ich nehme an da ist noch mehr JS enthalten.

    Du solltest dich mal ausführlicher mit Fehler und Debugginganalysen beschäftigen, das macht es dir und auch uns einfacher Fehler zu finden.

    Struppi.

  2. var b = new Array(4);

    var h = new Array(4);

    var in = new Array(4);

    var ma = new Array(4);

    Source Code:
    var in = new Array();

    ^^
    Die Array-Größe muß definiert werden.

    Gruß Sergej

    1. var in = new Array();
                           ^^
      Die Array-Größe muß definiert werden.

      Nein, muss nicht.

      Struppi.