parameterübergabe an funktionen
Marcel Stör
- javascript
hi community
folgendes problem: normaler text (mit css definiert) soll bei mouseover fett werden.
lösungsansatz: externe .js datei welche folgenden code enthält
function makeBold(id) {
document.all.id.style.fontWeight = "bold"; }
function undoBold(id){
document.all.id.style.fontWeight = "normal"; }
der entsprechende html-code sähe ja dann etwa wie folgt aus:
<a id="dynText" href="grades_bms_final.htm" onMouseOver="javascript:makeBold('dynText')" onMouseOut="javascript:undoBold('dynText')"
etc....
ich erhalte die fehlermeldung von der .js datei document.all.id.style sei kein objekt. wo liegt hier das problem?
ich habe zuerst die funktionen ohne übergabeparameter konzipiert und dann einfach gesagt: document.all.dynText.style.fontWeight... und im html die funktion mit makeBold() aufgerufen - immerhin funktioniert das..... das geht jedoch nur, solange diese funktion nur einmal pro seite verwendet wird (id ist immer gleich).
bin froh um jede hilfe
Hallo!
lösungsansatz: externe .js datei welche folgenden c
» function makeBold(id) {
»» document.all.id.style.fontWeight = "bold"; }
function undoBold(id){
»» document.all.id.style.fontWeight = "normal"; }
muß heißen:
function makeBold(id) {
document.all[id].style.fontWeight = "bold"; }
function undoBold(id){
document.all[id].style.fontWeight = "normal"; }
Thilo
Moin!
Thilo hat die Loesung schon genannt, ich moechte nur noch dabei nachhelfen, *warum* das so ist.
ich habe zuerst die funktionen ohne übergabeparameter konzipiert und dann einfach gesagt: document.all.dynText.style.fontWeight... und im html die funktion mit makeBold() aufgerufen - immerhin funktioniert das.....
Genau. Und was macht das? Es spricht das Objekt an, dass Du mit dem Attribut ID="dynText" so genannt hast. Was muesste demnach document.all.id.style.fontWeight machen? Es spricht naturlich das Objekt an, dass Du mit dem Attribut ID="id" so genannt hast. Hast Du irgendwo ein Tag mit diesem Namen deklariert? Eben. ;-)
Das Problem ist halt, dass dieses id, so wie Du es geschrieben hast, nicht als die Variable angesehen wird, die Du der Funktion uebergibst, sondern als "Unterobjekt" von document.all. In dem Konstrukt document.all[id] dagegen ist id diese Variable. Wenn der uebergebene Wert eingesetzt wird, koennte es z.B. document.all["dynText"] heissen.
Alles klar? ;-)
Calocybe