Sponsored Links |
|
||||
![]()
Hallo, danke aber das habe ich alles schon durch. JS setzt die Variable immer wieder auf den alten Wert zurück, egal ob ich diese nun mit var oder ohne einen neuen Wert zuweise. Das ist ja das komische, was ich auch nicht verstehe. Denn wie schon geschrieben, kann man ja überall nachlesen das dies gehen muss und wie die Gültigkeit der Variablen ist, aber das funktioniert eben so nicht.
|
|
||||
![]()
die funktionen und deklarationen sind alle in einer js-datei die mit der seite geladen wird.
Erläuterung: 1. Zeile : Deklaration der globalen Variabel 1.Funktion : schreibt den Inhalt der Variable in einen Div-Container 2.Funktion : wird bei Klick auf einen Button aufgerufen und bekomme die erforderlichen Daten mit, u.a. eben auch die für die globale Variabel. Soweit funktioniert dies auch. Wenn ich aber nun den Inhalt der Div-Box ausserhalb der Funktion neu schreibe, dann hat die Variable wieder den Wert der Deklaration von oben und nicht den geänderten Wert aus der Funktion. Code:
var karteninfo = "Deutschland"; /* Objektinhalt ändern */ function writeContent(obj,content) { if(browsertyp.NS6) { document.getElementById(obj).innerHTML = content; } else { if(browsertyp.IE) { document.all(obj).innerHTML = content; } } } function clickKarte_land(headline,karteninfo,region) { headlineText(headline); karteninfo = karteninfo; writeContent('info',karteninfo); showObj('listenbox'); } |
|
||||
![]()
kein Veränderung, immer noch wird die Variable auf den alten Wert zurückgesetzt, sobald ich den Inhalt der div-box ausserhalb der funktion neu schreibe. die varibale wird einfach nicht global geändert sondern immer nur lokal
|
|
||||
![]()
Prinzipiell funktioniert es jedoch so, wenn eine lokale Variable denselben Bezeichner hat.
Code:
var foo = "a"; function func(foo) { this.foo = foo; } func("b"); document.write(foo); // "b"
__________________
Markus Wulftange |
|
||||
![]()
Du verwendest hier drei verschiedene Typen von Variabeln mit dem gleich Namen das kann natürlich nicht gut gehen. Globale Variabeln sollte man zwar sowieso immer vermieden, wenn du sie schon benutzt dann solltest du möglichst eindeutige und unverwechselbare Bezeichnungen vergeben.
HTML-Code:
var v = 1; function test(v) { v = v; alert('v in funktion=' + v); // => 2 } alert('v vorher=' + v); // => 1 test(2); alert('v nacher=' + v); // => 1 HTML-Code:
var v = 1; function test(v2) { v = v2; alert('v in funktion=' + v) } alert('v vorher=' + v) test(2); alert('v nacher=' + v) |
Sponsored Links |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Problem mit variabler Variable | philosapiens | Serveradministration und serverseitige Scripte | 10 | 27.04.2011 19:31 |
Mitwachsender Content und Footer Problem | Bentham | CSS | 5 | 19.09.2010 11:49 |
IE 7: Zoom Problem, Höhen Problem, Text problem | Cu Chullain | CSS | 4 | 02.09.2010 13:56 |
Problem mit Background-Color im FireFox | to.ni | CSS | 2 | 31.08.2004 11:13 |