Array Syntaxanpassung

gygra

Mitglied
Hallo,

ich bräuchte mal Hilfe bei der Syntax.

Ich habe ein Script, das in einer Grafik beim Mouseover in der Navigation einen roten Punkt leuchten läßt. Das ist mittels Toc gelöst:
Code:
  if (document.images) {
             toc_aon = new Image();
             toc_aon.src = "images/button.gif";
		
			                      
             toc_aoff = new Image();
             toc_aoff.src = "images/1x1_out.gif";
          
             }
     function img_act(imgName) {
             if (document.images) {
             imgOn = eval(imgName + "on.src");
             imgmsg = eval(imgName + "on.msg");
             document [imgName].src = imgOn;
             }
     }
     function img_inact(imgName) {
             if (document.images) {
             imgOff = eval(imgName + "off.src");
             document [imgName].src = imgOff;
             }
     }
das liegt in einem externen Script


im HTML-Text findet sich jetzt:
Code:
<div style="position:absolute;top:6px;left:170px;"><img src="images/1x1_out.gif" width="20" height="20" alt="" border="0" name="toc_a"></div>

und etwas tiefer der Link:
Code:
<a href="#" onMouseover="img_act('toc_a');window.status='';return true;" onMouseout="img_inact('toc_1')">Sie sind hier</a>

Das funktioniert tadellos. Nun werden es aber ca 50 Navigationspunkte, die alle dieselbe Grafik ansprechen, die dann nur ihre Position ändern soll. Deshalb dachte ich im Script ein Array "a" zu definieren damit ich den toc nicht für jede Grafik neu beschreiben muss und im HTML-Text das toc_a durch ein toc_[1], toc_[2], etc zu ersetzen. Aber das funktioniert (natürlich) nicht.
Wie müsste denn die Syntax aussehen und kann man das überhaupt so machen
Danke schon mal vorab.

PS. Die Hilfethemen und -Foren fräse ich parallel zu diesem Thema durch, bin aber bislang nicht konkret fündig geworden. Ich wollte auch nicht einfach nur ein fertiges Skript abholen, aber mir brennt die Zeit ein wenig unter den Nägeln, deshalb wäre ich für direkte HIlfe, oder eine detaillierte Hilfestellung dankbar.
gygra^^
 
Hi,

für die Positionierung der Grafik ist das übergeordnete DIV-Element verantwortlich. Du musst also dafür sorgen, dass die Funktion die benötigten neuen Koordinaten bekommt. In der Funktion selbst werden diese den erforderlichen Eigenschaften (top, left) des Style-Objekts zugewiesen.

Beispiel:
Code:
function img_act(imgName, intTop, intLeft) {
  if (document.images) {
    imgOn = eval(imgName + "on.src");
    imgmsg = eval(imgName + "on.msg");
    document[imgName].src = imgOn;
    document[imgName].parentNode.style.top = intTop + "px";
    document[imgName].parentNode.style.left = intLeft + "px";
  }
}
Die beiden zusätzlichen Parameter werden beim Aufruf der Funktion übergeben.
Code:
<a href="#" onMouseover="img_act('toc_a', 6, 170);window.status='';return true;" onMouseout="img_inact('toc_1')">Sie sind hier</a><br>
<a href="#" onMouseover="img_act('toc_a', 200, 100);window.status='';return true;" onMouseout="img_inact('toc_1')">Sie sind hier</a>
Wichtig - das DIV und das IMG-Element müssen ohne Zeichen dazwischen in einer Zeile stehen.

Vielleicht hilft dir das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück