Dickus: Variablen beim Aufruf einer Funktionen übergeben

Hallöle,

habe hier gerade ein kleines Problem mit der Übergabe von Werten
an eine Funktion.

Folgende Situation:

var x=0;

function eins(x)
{
 alert(x); //hier sollte 1 ausgegeben werden.
}

function zwei()
{
 x=1;
 return x; // geht das so?
}

<a href="javascript:zwei(); eins(x);"...>Klick</a>

Erste Frage:
Wie kann ich den X-Wert der zweiten Funktion an die erste Funktion
übergeben?
In der ersten Funktion soll für x der Wert 1 ausgegeben werden.

Zweite Frage:
Kann ich mir die Funktion 'function zwei()' schenken und beim
Aufruf javascript:eins(x) schon den neuen Wert (x=1) übergeben?

javascript:eins(x=1) oder Ähnliches?

Danke
Dickus

  1. hallo,

    also entweder:
    <a href="javascript: eins( zwei() );"...>Klick</a>

    oder direkt
    <a href="javascript: eins( 1 );"...>Klick</a>

    cu
    kai

    1. hallo,

      also entweder:
      <a href="javascript: eins( zwei() );"...>Klick</a>

      oder direkt
      <a href="javascript: eins( 1 );"...>Klick</a>

      cu
      kai

      Super !
      Alles klar, damit kann ich arbeiten. :-)

      Danke
      Dickus

  2. Hallo,

    habe hier gerade ein kleines Problem mit der Übergabe von Werten
    an eine Funktion.

    Folgende Situation:

    var x=0;

    function eins(x)
    {
    alert(x); //hier sollte 1 ausgegeben werden.
    }

    Du solltest dem Parameter eine andere Bezeichnung geben als der Variablen.

    […]
    Erste Frage:
    Wie kann ich den X-Wert der zweiten Funktion an die erste Funktion
    übergeben?
    In der ersten Funktion soll für x der Wert 1 ausgegeben werden.

    eins(zwei())

    Zweite Frage:
    Kann ich mir die Funktion 'function zwei()' schenken und beim
    Aufruf javascript:eins(x) schon den neuen Wert (x=1) übergeben?

    warum sollte das nicht gehen? Schreibe den Befehl einfach mit in die Funktion. Oder willst du die Variable immer um 1 erhöhen? Dann kannst du einfach:

    x++

    oder

    x += 1

    oder

    x = x + 1

    verwenden.

    javascript:eins(x=1) oder Ähnliches?

    JavaScripts sollten möglichst in richtigen Eventhandlern stehen und nicht in Links.

    mfg. Daniel

    1. Moin

      JavaScripts sollten möglichst in richtigen Eventhandlern stehen und nicht in Links.

      Warum?

      Gruß
      rfb

      1. Hallo,

        JavaScripts sollten möglichst in richtigen Eventhandlern stehen und nicht in Links.

        Warum?

        • Du musst nicht unbedingt das <a>-Element verwenden
        • Falls du das <a>-Element verwendest, kannst du im href sinnvolle Alternativ-Links anbieten
        • „this“ funzt nur in Eventhandlern

        Obwohl ich natürlich empfehlen würde, gar keine Eventhandler in den HTML-Quelltext zu schreiben, sondern selbige in's Script zu verlagern und die Events von dort aus aufzurufen.

        z.B.
        statt
        <body onload="jscode" …
        lieber
        window.onload = function(){jscode}

        oder für
        <input onclick="jscode" …
        lieber
        document.getElementsByTagName("input")[0].onclick = function(){jscode}

        Das wäre dann eine vollständige Trennung von Inhalt und Script (Unobtrusive JavaScript)

        mfg. Daniel

        1. Hallo Daniel.

          • „this“ funzt nur in Eventhandlern

          Nö, „this“ funktioniert immer und überall.

          Einen schönen Freitag noch.

          Gruß, Mathias

          --
          sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
          debian/rules
          1. Hallo,

            Hallo Daniel.

            • „this“ funzt nur in Eventhandlern

            Nö, „this“ funktioniert immer und überall.

            OK, aber nicht so, wie man es will. Wenn man nur auf das window-Objekt verweisen will, kann man auch gleich „window“ schreiben.

            <a href="javascript:alert(this.innerHeight)">

            Finde ich jedenfalls nicht besonders sinnvoll.

            mfg. Daniel

            1. Hallo Daniel.

              Wenn man nur auf das window-Objekt verweisen will, kann man auch gleich „window“ schreiben.

              Einmal abgesehen davon, dass Eigenschaften und Methoden des window-Objektes jederzeit alleinstehend aufgerufen werden kann, spricht doch nichts dagegen, innerhalb von Methoden dieses Objektes einfach per „this“ auf window zu verweisen.

              <a href="javascript:alert(this.innerHeight)">

              Finde ich jedenfalls nicht besonders sinnvoll.

              Ich auch nicht. JavaScript-Code hat im href-Attribut von Links nichts zu suchen.

              Einen schönen Freitag noch.

              Gruß, Mathias

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              debian/rules
              1. Hallo,

                Wenn man nur auf das window-Objekt verweisen will, kann man auch gleich „window“ schreiben.

                Einmal abgesehen davon, dass Eigenschaften und Methoden des window-Objektes jederzeit alleinstehend aufgerufen werden kann,

                Somit ist <a href="javascript:this.… also komplett sinnlos…

                spricht doch nichts dagegen, innerhalb von Methoden dieses Objektes einfach per „this“ auf window zu verweisen.

                Was spricht denn dafür?

                <a href="javascript:alert(this.innerHeight)">

                Finde ich jedenfalls nicht besonders sinnvoll.

                Ich auch nicht. JavaScript-Code hat im href-Attribut von Links nichts zu suchen.

                Womit wir wieder beim Ausgangsposting wären.

                mfg. Daniel