Event-Parent-Objekt
cheops
- javascript
0 Norbert Klein0 cheops
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]
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
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