Andreas: (DOM)Objekt welches eine Funktion aufruft

Hallo ich habe ein kleines Problem,

ich möchte gern auf ein (DOM)Objekt zugreifen von dem eine Funktion über ein Event aufgerufen wurde also z.B. auf den Button wenn dieser Button ein clickEvent hat z.B sowas wie

<input type="button" onclick="eineFunktion();">

in plainHtml ft. Javascript könnte man eine Lösunge wie diese nutzen

<input type="button" onclick="eineFunktion(this);">

und dann in der Fuktion auf diesen Parameter zugreifen.

Leider will ich nun das ganze aber in einer Domstruktur realisieren und da macht mir der IE mal wieder Striche durch meine Rechnung. Ich nutze die Funktion attachEvent um im IE mein gewünschtes Event anzufügen.

Momentan sieht meine Code für den IE etwa so aus:

event='onclick';
func = 'eineFunktion(this)';
elem.attachEvent(event,function(){eval(func)});

(ich weiss "eval is evil" aba darüber möchte ich jetz nich diskutieren :) )

gibt es eine andere Möglichkeit auf das (DOM)Objekt zuzugreifen von welchen die Funktion aufgerufen wurde?

danke im Vorraus

  1. Hallo Andreas.

    Momentan sieht meine Code für den IE etwa so aus:

    event='onclick';
    func = 'eineFunktion(this)';
    elem.attachEvent(event,function(){eval(func)});

    (ich weiss "eval is evil" aba darüber möchte ich jetz nich diskutieren :) )

    gibt es eine andere Möglichkeit auf das (DOM)Objekt zuzugreifen von welchen die Funktion aufgerufen wurde?

    Einfach so?

    elem.onclick = function(e) {  
      
      var e = e || window.event; // IE-Workaround  
      
      alert(this); // Das Elementobjekt „elem“  
    }
    

    Einen schönen Mittwoch noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hi Mathias,

      leider kann ich diese Lösung nicht verwenden da in meinen BSP event und func nur als String vorliegen.

      mfg Andreas

      PS. Schöne grüße nach Dresden :)

      1. Hallo Andreas.

        leider kann ich diese Lösung nicht verwenden da in meinen BSP event und func nur als String vorliegen.

        Dann eben so:

        var event = 'onclick';  
        var func = 'var e = e || window.event; alert(this);';  
          
        elem[event] = new Function('e', func);
        

        PS. Schöne grüße nach Dresden :)

        Dankeschön.

        Einen schönen Mittwoch noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. Stop! In func steht nicht die Funktion sondern nur der Funktionsname!

          gruß Andreas

          1. hi,

            Stop!

            Mit wie vielen weiteren Postings von dir, in denen du erst nach und nach relevante Informationen rausrückst, dürfen wir denn noch rechnen?

            Du scheinst entweder Hobby-Quizmaster zu sein - oder selbst schon keinen Überblick mehr zu haben.

            In func steht nicht die Funktion sondern nur der Funktionsname!

            var Funktionsname = "alert";
            windowFunktionsname;

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Hey moment was soll das? Lies dir meinen ersten post bitte erst richitg durch bevor du solche Urteile fällst!

  2. Hallo Andreas,

    wenn ich Dich richtig verstanden habe, möchtest Du das Objekt haben, welches den
    Event ausgelöst hat?! Wenn nicht, hab ich Pech gehabt. Ansonsten liefert Dir
    die Funktion

    function getEventTarget(e) {
      return (e.target) ? e.target : e.srcElement;
     }

    das Element, welches den Event auslöst. e verwendet Du auch als Parameter
    in deiner Funktion:

    machWas = function(e) {
      var elem = getEventTarget(e);  //liefert das event-auslösende Element
      if (!elem) {
        // mach was, wenn element nicht vorhanden
      } else {
        // mach was anderes, wenn Element vorhanden
      }
    }

    Passt?

    Grüße, dicon

    1. Hey cool genau das hab ich gesucht :)

      Vielen danke und noch einen schönen Tag