cheops: Event-Parent-Objekt

Hallöle zusammen,

hab folgendes Problem:
ich habe mehrere Layer, die alle einen Event auslösen könne
(bei mouseover, click und out). Der Event wird auch ausgelöst
aber in meinem Eventhandler hab ich jetzt unter NS6.1 das Problem,
wie ich den Namen des ausgehenden Objekts ermitteln kann.
"e.target.firstChild.data" liefert mir zwar schon mal den Inhalt
von meinem Layer aber ich brauche den Namen, bzw. die von mir
vergebene ID von dem Ding. ODer besteht alternativ die Möglichkeit,
dem Layer einen Parameter mitzugeben, wenn er den Event ausführt?
Vielen Dank im voraus für eine Antwort und schönes Wochenende.

Gruß
cheops

[Community of the Future]
[http://www.cybermoon.de]

  1. Hallo.

    for-in-Schleifen sind dein Freund:

    <html><head><title>e.target</title>
    </head><body>
    <h1 id="evtTarget">Klick mich!</h1>
    <script type="text/javascript">
    <!--
     function piet(e)
      {
       var e1 = document.createElement("h2");
       e1.appendChild(document.createTextNode("e.target"));
       document.body.appendChild(e1);
       for(property in e.target)
        {
         e1 = document.createElement("p");
         e1.appendChild(document.createTextNode("e.target." + property + " = " + e.target[property] + "; "));
         document.body.appendChild(e1);
        }
       e1 = document.createElement("h2");
       e1.appendChild(document.createTextNode("e.target.parentNode"));
       document.body.appendChild(e1);
       for(property in e.target.parentNode)
        {
         e1 = document.createElement("p");
         e1.appendChild(document.createTextNode("e.target.parentNode." + property + " = " + e.target.parentNode[property] + "; "));
         document.body.appendChild(e1);
        }
      }
     document.getElementById("evtTarget").onclick = piet;
    //-->
    </script>
    </body></html>

    "e.target.firstChild.data" liefert mir zwar schon mal den Inhalt
    von meinem Layer aber ich brauche den Namen, bzw. die von mir
    vergebene ID von dem Ding.

    Dank der for-in-Schleife wird dann auch ersichtlich, dass e.target ein Textknoten ist, e.target.parentNode bzw. e.target.parentNode.id ist das, was du suchst.

    ODer besteht alternativ die Möglichkeit,
    dem Layer einen Parameter mitzugeben, wenn er den Event ausführt?

    Die gibt es auch:

    <html><head><title>e.target</title>
    </head><body>
    <h1 id="evtTarget">this.id = ?</h1>
    <script type="text/javascript">
    <!--
     function sid(evt,id)
      {
       document.getElementById("evtTarget").firstChild.nodeValue = "this.id = " + id;
      }
     document.getElementById("evtTarget").onmouseover = function(evt){sid(evt,this.id)};
    //-->
    </script>
    </body></html>

    Gruß
    Norbert

    1. hi!
      danke für deine rasche antwort, habe aber mittlerweile eine
      elegantere lösung gefunden. es ging mir ja darum, die von
      mir vergebene id-kennung zu ermitteln und so schauts aus:

      e.target.getAttribute("ID");

      ...wobei "e" der event ist (klar).

      schönes weeky
      cheops

      Hallo.

      for-in-Schleifen sind dein Freund:

      <html><head><title>e.target</title>
      </head><body>
      <h1 id="evtTarget">Klick mich!</h1>
      <script type="text/javascript">
      <!--
       function piet(e)
        {
         var e1 = document.createElement("h2");
         e1.appendChild(document.createTextNode("e.target"));
         document.body.appendChild(e1);
         for(property in e.target)
          {
           e1 = document.createElement("p");
           e1.appendChild(document.createTextNode("e.target." + property + " = " + e.target[property] + "; "));
           document.body.appendChild(e1);
          }
         e1 = document.createElement("h2");
         e1.appendChild(document.createTextNode("e.target.parentNode"));
         document.body.appendChild(e1);
         for(property in e.target.parentNode)
          {
           e1 = document.createElement("p");
           e1.appendChild(document.createTextNode("e.target.parentNode." + property + " = " + e.target.parentNode[property] + "; "));
           document.body.appendChild(e1);
          }
        }
       document.getElementById("evtTarget").onclick = piet;
      //-->
      </script>
      </body></html>

      "e.target.firstChild.data" liefert mir zwar schon mal den Inhalt
      von meinem Layer aber ich brauche den Namen, bzw. die von mir
      vergebene ID von dem Ding.

      Dank der for-in-Schleife wird dann auch ersichtlich, dass e.target ein Textknoten ist, e.target.parentNode bzw. e.target.parentNode.id ist das, was du suchst.

      ODer besteht alternativ die Möglichkeit,
      dem Layer einen Parameter mitzugeben, wenn er den Event ausführt?

      Die gibt es auch:

      <html><head><title>e.target</title>
      </head><body>
      <h1 id="evtTarget">this.id = ?</h1>
      <script type="text/javascript">
      <!--
       function sid(evt,id)
        {
         document.getElementById("evtTarget").firstChild.nodeValue = "this.id = " + id;
        }
       document.getElementById("evtTarget").onmouseover = function(evt){sid(evt,this.id)};
      //-->
      </script>
      </body></html>

      Gruß
      Norbert