Christian: this

hi,

kann ich mich in einer funktion noch auf das schlüsselwort "this" berufen?

z.B. irgendwas mit onClick="funktion(bla)" und in der funktion dann this.style etc.

  1. Hallo Christin,

    kann ich mich in einer funktion noch auf das schlüsselwort "this" berufen?

    Warum probierst du es nicht einfach aus?

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. Hi David,

      Hallo Christin,

      Christian :)

      Warum probierst du es nicht einfach aus?

      hab ich grad. geht nicht!

      gibt es einen anderen weg der funktion mitzuteilen von wo der onClick kam?

      Grüße,
      Christian

      1. Hallo Christian,

        Christian :)

        Du mögest mir verzeihen ;)

        gibt es einen anderen weg der funktion mitzuteilen von wo der onClick kam?

        sschumann schrieb es mehr oder weniger. Du richtest in der Funtkion einen
        Parameter ein und rufst die funktion dann mit "funktion(this);"  auf. Schon
        ist das Objekt im Parameter.

        Grüße
          David

        --
        >>Nobody will ever need more than 640k RAM!<<
        1981 Bill Gates
        1. hi David,

          Christian :)
          Du mögest mir verzeihen ;)

          *ggg* logisch.

          Parameter ein und rufst die funktion dann mit "funktion(this);"  auf. Schon
          ist das Objekt im Parameter.

          irgendwie nicht schau mal beim sschumann, ich werd auch nochmal den kompletten code senden zu sicherheit ;)

          cu

  2. kann ich mich in einer funktion noch auf das schlüsselwort "this" berufen?

    z.B. irgendwas mit onClick="funktion(bla)" und in der funktion dann this.style etc.

    onclick="machmal(this)" geht... dann kannst Du auf das Quellelement des Events zugreifen. Oder du weist element.onlick gleich eine Methode zu, in der this dann element entspricht (geht auch ohne prototype)

    1. hi sschumann,

      onclick="machmal(this)" geht...

      bei mir nicht. sorry.

      "object expected"

      hab volgendes eingetragen:

      OnMouseOver="change_img(this,0)"

      und

      function change_img(line,img_object)
         {
         line.style.backgroundImage=url("nav_field_active.gif");
         }

      1. hi sschumann,

        onclick="machmal(this)" geht...

        bei mir nicht. sorry.

        <script language="JavaScript">

        function w(x){
         alert(x.name)
        }

        </script>
        <a name="kurt" href="#" onclick="w(this);return false">huhu</a>

        Gibt bei mir "kurt" aus. Getestet in IE6, Firebird, Netscape 4.05 unter Win32

        1. hi sschumann,

          Gibt bei mir "kurt" aus. Getestet in IE6, Firebird, Netscape 4.05 unter Win32

          ja ich war nur zu blöd den url string aufzubauen.
          sorry für die unnötige arbeit, die ich dir gemacht habe.

          die richtige lösung ab mal gepostet falls jemand anderes das gleiche prob hat.

          cu und vielen dank!

      2. hi,

        ok ich hab eine lösung (hängt aber genauso!!!):

        <script type="text/JavaScript">
        <!--
        var bgImg = new Array();
        bgImg[0] = new Image(); bgImg[0].src = "nav_field.gif";
        bgImg[1] = new Image(); bgImg[1].src = "nav_field_active.gif";

        function change_img(line,img)
           {
           line.style.backgroundImage="url("+bgImg[img].src+")";
           }
        //-->
        </script>

        ---------------------------------

        <tr OnMouseOver="change_img(this,'1')" OnMouseOut="change_img(this,'0')">

        cu und danke an alle!

        1. Hallo Christian,

          ok ich hab eine lösung (hängt aber genauso!!!):

          Und schon bekommst du den Nachteil dieser genannt ;)
          Diese Zeile hatte ich zwischenzeitlich auch einmal, allerdings geschah nichts.
          Gerade testete ich noch einmal und siehe da: IE und Mozilla machen's, Opera
          aber nicht.
          Für die CSS-Lösung ist der IE aber wieder zu dumm ;)

          Grüße
            David

          --
          >>Nobody will ever need more than 640k RAM!<<
          1981 Bill Gates
          1. hi David,

            Gerade testete ich noch einmal und siehe da: IE und Mozilla machen's, Opera
            aber nicht.
            Für die CSS-Lösung ist der IE aber wieder zu dumm ;)

            man kanns halt nie allen recht machen ;) *ggg*

            ich hab aber auch keine lust mehr. ich lass das jetzt einfach so und mach vielleicht morgen weiter.

            vielen dank für deine bemühungen. cu.

    2. hier mal das ganze konstruckt was ich mir so vorgestellt habe:

      <script type="text/JavaScript">
      <!--
      var bgImg = new Array();
      bgImg[0] = new Image(); bgImg[0].src = "nav_field.gif";
      bgImg[1] = new Image(); bgImg[1].src = "nav_field_active.gif";

      function change_img(line,img)
         {
         line.style.backgroundImage=url(bgImg[img].src);
         }

      //-->
      </script>

      und in einer Tabelle

      <tr OnMouseOver="change_img(this,1)" OnMouseOut="change_img(this,0)">

      (sorry an die Forums Admins ich weiss ich habe weiter unten schon mal das prob. gepostet. war aber echt keine absicht wieder hier zu landen *ggg* )

      1. Hallo zusammen,

        line.style.backgroundImage=url(bgImg[img].src);

        lass dir mal line.style.backgroundImage ausgeben. Es erscheint dort das
        vorherige Bild. Bei mir wechselt es dann auch weg aber es bleibt weiß,
        sprich: das andere Bild wird nicht geladen (weder das beim onmouseover noch
        das beim onmouseout). Ich habe es jetzt so spontan nicht hinbekommen, dass
        funktioniert.
        Aber dann dachte ich mir auch, dass das reichlich blöde ist, was "wir" da
        gerade ans Laufen bekommen wollen. JS ist hierbei unangebracht, es gibt
        doch CSS. Schau dir da mal die Pseudo-Klasse :hover an und löse das
        ganze darüber.

        Grüße
          David

        --
        >>Nobody will ever need more than 640k RAM!<<
        1981 Bill Gates