
75032
23.02.2011, aktualisiert um 17:20:21 Uhr
Brauche Unterstützung bei Javascript
Hi,
ich wollte eine Javascript Funktion schreiben wo wenn ich auf einen Button klicke sich a in b verändert und wenn ich nochmal klicke wieder b in a. Könnt ihr mir eventuell sagen was ich da falsch gemacht habe...
Danke schonmal im Vorraus
Gruß
ich wollte eine Javascript Funktion schreiben wo wenn ich auf einen Button klicke sich a in b verändert und wenn ich nochmal klicke wieder b in a. Könnt ihr mir eventuell sagen was ich da falsch gemacht habe...
<script type="text/javascript">
function show_1(){
var v_id_1 = 0;
if(v_id_1 = 0){
document.getElementById('1').style.visibility='visible';
document.getElementById('id_1').innerHTML = '<-';
v_id_1 = 1;
}
if(v_id_1 = 1){
document.getElementById('1').style.visibility='hidden';
document.getElementById('id_1').innerHTML = '->';
v_id_1 = 0;
}
}
</script>
Danke schonmal im Vorraus
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 161443
Url: https://administrator.de/forum/brauche-unterstuetzung-bei-javascript-161443.html
Ausgedruckt am: 23.04.2025 um 16:04 Uhr
8 Kommentare
Neuester Kommentar
function show_1(){
Funktion wird betreten.
var v_id_1 = 0;
Variable wird auf 0 gesetzt
if(v_id_1 = 0){
Variable wird erneut auf 0 gesetzt, 0 wird zu false ausgewertet, IF fällt weg.
if(v_id_1 = 1){
Variable wird auf 1 gesetzt, 1 wird zu TRUE ausgewertet, IF wird ausgeführt
v_id_1 = 0;
Variable wird auf 0 gesetzt.
}
Funktion wird beendet.
Bei jedem Aufruf der Funktion wiederholt sich obiges.
Hallo Schelli,
da sind zwei Dinge:
1. Eine ID muss mit einem Buchstaben __beginnen__: Basic HTML data types (w3.org)
Lass uns mal davon ausgehen, dass das Element nicht sichtbar (hidden / 0) ist und die Funktion aufgerufen wird.
1. Setze v_id_1 auf 0
2. Erste Bedingung: v_id_1 ist gleich 0 also
3. mach das Element sichtbar (visibel / 1) und
4. setze auch v_id_1 auf 1
5. Zweite Bedingung: v_id_1 ist gleich 1 also (wurde ja gerade von 0 auf 1 geändert, siehe Punkt 4)
6. mach das Element unsichtbar (hidden / 0) und
7. setze auch v_id_1 auf 0
ENDE
Beim nächstem Aufruf passiert __exakt__ das gleiche ! weil der Funktionsaufruf die Variabel v_id_1 als erstes IMMER auf 0 setzt !
Falls das dein Ziel war hast du es erreicht
Du __müsstest__ die Variable also außerhalb der Funktion definieren damit sich nicht immer beim Funktionsaufruf "zurückgesetzt" wird.
Und deine Bedingungen solltest du in einverpacken, dann wird entweder der erste ODER der zweite Block ausgeführt.
Und nun noch ein Tipp:
"document.getElementById('block_1').style.visibility" kannst du auch als Bedingung verwenden:
Alle Angaben ohne Gewähr und Funktionstests
Schönen Gruß
~Arano
Edit: Den ollen Zuweisungs-Vergleichs-Fehler habe ich glatt übersehen
da sind zwei Dinge:
1. Eine ID muss mit einem Buchstaben __beginnen__: Basic HTML data types (w3.org)
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
2. Ist deine Javascript-Funktion falsch (logischer Fehler)Lass uns mal davon ausgehen, dass das Element nicht sichtbar (hidden / 0) ist und die Funktion aufgerufen wird.
1. Setze v_id_1 auf 0
2. Erste Bedingung: v_id_1 ist gleich 0 also
3. mach das Element sichtbar (visibel / 1) und
4. setze auch v_id_1 auf 1
5. Zweite Bedingung: v_id_1 ist gleich 1 also (wurde ja gerade von 0 auf 1 geändert, siehe Punkt 4)
6. mach das Element unsichtbar (hidden / 0) und
7. setze auch v_id_1 auf 0
ENDE
Beim nächstem Aufruf passiert __exakt__ das gleiche ! weil der Funktionsaufruf die Variabel v_id_1 als erstes IMMER auf 0 setzt !
Falls das dein Ziel war hast du es erreicht
Du __müsstest__ die Variable also außerhalb der Funktion definieren damit sich nicht immer beim Funktionsaufruf "zurückgesetzt" wird.
Und deine Bedingungen solltest du in ein
if(v_id_1 == 0)
{
// wenn v_id_1 == 0
// mach es sichtbar
}
else
{
// andernfalls
// mach es unsichtbar
}
Und nun noch ein Tipp:
"document.getElementById('block_1').style.visibility" kannst du auch als Bedingung verwenden:
if( document.getElementById('block_1').style.visibility != "visible" ){ // machs sichtbar}
else{ //machs unsichtbar }
Alle Angaben ohne Gewähr und Funktionstests
Schönen Gruß
~Arano
Edit: Den ollen Zuweisungs-Vergleichs-Fehler habe ich glatt übersehen
Mit Jquery lassen sich solche abfragen ziemlich vereinfachen. Desweiteren bietet es auch eine Menge an Funktionen ohne viel selber programmieren zu müssen.
http://jquery.com/
Meine Vorredner haben den Rest schon gesagt und kann mich nur anschließen.
http://jquery.com/
Meine Vorredner haben den Rest schon gesagt und kann mich nur anschließen.