Suche im Forum:
Suchen


« Vorheriges Thema anzeigen :: Nächstes Thema anzeigen »  
Autor Nachricht
Beitrag10.07.2012 um 18:12 (UTC)    
Titel: variablen inhalt wird nicht übergeben

var maxzahl = 4;
var zahleins = 1;
var zahlzwei = maxzahl;
var zahldrei = 2;
function rechts(){
maxzahl++;
zahleins++;
zahlzwei++;
zahldrei++;
alert('zahl=' + zahleins + zahlzwei + zahldrei);
if(zahleins == maxzahl) {
var zahleins = 1;}
if(zahlzwei == maxzahl) {
var zahlzwei = 1;}
if(zahldrei == maxzahl) {
var zahldrei = 1;}
document.getElementById('b' + zahleins).style.display = 'block'
document.getElementById('b' + zahlzwei).style.display = 'none'
document.getElementById('b' + zahldrei).style.display = 'none'
var maxzahl = maxzahl - 1;
}


Kann mir einer sagen warum die variablen nicht übergeben werden?
Beitrag10.07.2012 um 18:18 (UTC)    
Titel:

Wo sollen da bitte Variablen übergeben werden?

Was soll das eigentlich Skript machen und was macht es wirklich?

mfg Philipp
______________
Forenregeln, FAQ, Suchfunktion
Beitrag10.07.2012 um 18:28 (UTC)    
Titel:

Der soll einen div einblenden und 2 andere mit den namen daneben ausblenden (z.b.: b2 einblenden /b1 und b3 ausblenden oder b51 einblenden /b50 und b52 ausblenden), also immer b+zahl einblenden und b+(zahl+1) und b+(zahl-1) ausblenden. Das Problem ist das bei alert immer zahl=NaNNaNNaN ausgegeben wird also die Variable nicht in die function übergeben wird.
Beitrag10.07.2012 um 19:14 (UTC)    
Titel:

von wo aus wird denn rechts() aufgerufen?
Wenn der Funktion "rechts" Parameter übergeben werden sollen, so musst du das auch entsprechend angeben:

function rechts(parameter1, parameter2,...) {
...
______________
Mit mir chatten? Besuche uns auf CookieChat.de (keine Anmeldung nötig, einfach einen Spitznamen einegeben)
Beitrag10.07.2012 um 20:00 (UTC)    
Titel:

ok gut danke ich Probiere es aus, tut mir Leid ich hab heute zum ersten mal mit Variablen in Js gearbeitet.

mfg killing-bunnys oder so ^^


Zuletzt bearbeitet von killing-bunnys am 10.07.2012, 21:03, insgesamt einmal bearbeitet
Beitrag10.07.2012 um 20:34 (UTC)    
Titel: Re: variablen inhalt wird nicht übergeben

Hallo,

um dir noch zu sagen, warum du keinen Zugriff auf die globalen Variablen hast:
killing-bunnys hat Folgendes geschrieben:
var maxzahl = 4;
var zahleins = 1;
var zahlzwei = maxzahl;
var zahldrei = 2;
function rechts(){
maxzahl++;
zahleins++;
zahlzwei++;
zahldrei++;
alert('zahl=' + zahleins + zahlzwei + zahldrei);
if(zahleins == maxzahl) {
var zahleins = 1;}
if(zahlzwei == maxzahl) {
var zahlzwei = 1;}
if(zahldrei == maxzahl) {
var zahldrei = 1;}
document.getElementById('b' + zahleins).style.display = 'block'
document.getElementById('b' + zahlzwei).style.display = 'none'
document.getElementById('b' + zahldrei).style.display = 'none'
var maxzahl = maxzahl - 1;
}

Du hast innerhalb der Funktion rechts neue Variablen mit dem gleichen Namen definiert. Ergo gibt es eine kleine Namensraum Kollision. Als du versucht hast auf die globalen Variablen zu zugreifen, hast du auf die lokalen Variablen Zugegriffen und die waren zu diesem Zeitpunkt noch nicht definiert. Wenn du auf eine nicht definierte Variable eine Arithmetische Operation ausführst (hier inkrementieren), ist das eben NotaNumber.

PS: Wenn du die Zahlen im alert addieren möchtest, musst du Klammern setzen, da sie andernfalls als String intepretiert werden deshalb auch NotaNumberNotaNumberNotaNumber.
______________
mfg
o-4-n

"If you’re incompetent, you can’t know you’re incompetent." - [David Dunning]

*** Die Suchfunktion ist KEINE tödliche Krankheit! ***

Eventplanung, Equipment, Zeltverleih, Catering


Zuletzt bearbeitet von o-4-n am 10.07.2012, 21:35, insgesamt einmal bearbeitet
Beitrag10.07.2012 um 20:48 (UTC)    
Titel:

xD was für eine ausdruckweise, ich musste erstmal das wort "inkrementieren" googlen ^^ aber zurück zum Thema wie kann ich denn diese Globalen Variablen im lokalen Bereich verändern bzw. die Lokalen Variablen Global speichern. Wenn es zu weit geht und ich erstmal lernen soll bevor ich sowas versuch sag es einfach.

PS: Ich wollt die Variablen im alert Befehl nicht addieren.

mfg Killing-Bunnys ...oder so


Zuletzt bearbeitet von killing-bunnys am 10.07.2012, 21:50, insgesamt einmal bearbeitet
Beitrag10.07.2012 um 20:51 (UTC)    
Titel:

Zitat:
xD was für eine ausdruckweise, ich musste erstmal das wort "inkrementieren" googlen

inkrementieren heißt einfach eins addieren, also:
i++ ist das selbe, wie i = i + 1
Zitat:

aber zurück zum Thema wie kann ich denn diese Globalen Variablen im lokalen Bereich verändern

Ganz normal, wie man sie sonst auch verändert.

mfg Philipp
______________
Forenregeln, FAQ, Suchfunktion
Beitrag10.07.2012 um 21:06 (UTC)    
Titel:

1. ja das weiß ich jetzt auch ^^

2. ok ich weiß was du meinst muss nur noch was nachkuck also den rest schaff ich allein xD. (was für ein Rest^^)

also noch mal vielen dank das ihr so viel geschrieben habt

mfg killing-bunnys ...oder so


PS: hab den script gestern noch ein bisschen verändert

<script type="text/javascript">
var maxzahl = 10;
var zahleins = 1;

function rechts() {
maxzahl++;
zahleins++;
if(zahleins == maxzahl) {
zahleins = 1;}
document.getElementById('b1').style.background = 'url(http://img.webme.com/pic/k/killing-bunnys/exbild' + zahleins + '.png)'
maxzahl--;
}
function links1(){
zahleins = zahleins - 1;
if(zahleins == 0) {
zahleins = maxzahl;}
document.getElementById('b1').style.background = 'url(http://img.webme.com/pic/k/killing-bunnys/exbild' + zahleins + '.png)'
}

<div id="b1"><br></div>
<div id="hi">
<img onclick="links1()" src="links.png">
<font onclick="mas()">drück mich!</font>
<img onclick="rechts()" src="rechts.png">
</div>


-->css<--
#b1 {
width:510px;
height:702px;
}

Einfach gesagt wird hier, wenn man auf rechts.png klickt, der Name des Hintergrundes (im Container "b1"), von exbild1.png auf exbild2.png, geändert. d.h. die Zahl im Namen des Bildes erhöht sich bei einem Klick auf rechts.png um eins und verringert sich um eins bei einen klick auf links.png so das sich die Hintergrundbilder ändern.

maxzahl=maximale Bilderanzahl
zahleins=Bild mit dem er starten soll


Zuletzt bearbeitet von killing-bunnys am 11.07.2012, 07:59, insgesamt 2-mal bearbeitet
Beiträge der letzten Zeit anzeigen:   


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de