Ereignisse in eigenen Objekten erzeugen
Rekire
- javascript
0 Mathias Brodala0 Rekire0 molily0 Rekire
0 Axel Richter
Hallo,
Ich arbeite gerade an einem Objekt das auch Ereignisse Auslösen soll.
Ich habe es so probiert:
function MachWas() {
alert("Es ist was passiert!");
}
MeinObjekt.onErgegnis=MachWas;
An einer bestimmten Stelle möchte ich nun ein Ereignis (selbstverständlich innerhalb des Objekts) auslösen die Frage die sich mir stellt ist "Nur wie?".
Beide ansetze klappen nicht:
if(typeof MeinObjekt.onErgegnis == "function")
{eval(MeinObjekt.onErgegnis);}
if(typeof MeinObjekt.onErgegnis == "function")
{MeinObjekt.onErgegnis();}
Ich bin mir sicher das ich etwas Grundliegendes übersehen habe, aus dem Grund hoffe ich das Ihr mir schnell helfen könnt :-)
Gruß,
Rekire
Hallo Rekire.
An einer bestimmten Stelle möchte ich nun ein Ereignis (selbstverständlich innerhalb des Objekts) auslösen die Frage die sich mir stellt ist "Nur wie?".
Du kannst nur Ereignisse erzeugen, zu denen es <http://de.selfhtml.org/javascript/objekte/htmlelemente.htm@title=vorgefertigte Methoden wie click()> o. Ä. gibt. (Basierend auf DOM2 HTML.)
Einen schönen Samstag noch.
Gruß, Mathias
Hi Mathias,
Du kannst nur Ereignisse erzeugen, zu denen es <http://de.selfhtml.org/javascript/objekte/htmlelemente.htm@title=vorgefertigte Methoden wie click()> o. Ä. gibt. (Basierend auf DOM2 HTML.)
Mir geht es viel mehr darum, wie ich eine soartig zugewiesene Funktion aufrufen kann.
Gruß,
Rekire
Hallo Rekire.
Du kannst nur Ereignisse erzeugen, zu denen es <http://de.selfhtml.org/javascript/objekte/htmlelemente.htm@title=vorgefertigte Methoden wie click()> o. Ä. gibt. (Basierend auf DOM2 HTML.)
Mir geht es viel mehr darum, wie ich eine soartig zugewiesene Funktion aufrufen kann.
objekt.methode();
Oder verstehe ich dich falsch?
Einen schönen Samstag noch.
Gruß, Mathias
Eine Andere Idee von mir ist folgendes:
function MachWas() {
alert("Es ist was passiert!");
}
MeinObjekt.onErgegnis="MachWas()";
Und zum auslösen dann sowas:
eval(MeinObjekt.onErgegnis);
Das muss doch aber eleganter gehen oder nicht?
Gruß,
Rekire
Hallo Rekire.
Eine Andere Idee von mir ist folgendes:
function MachWas() {
alert("Es ist was passiert!");
}MeinObjekt.onErgegnis="MachWas()";
Und zum auslösen dann sowas:
eval(MeinObjekt.onErgegnis);
Bäh, pfui.
Das muss doch aber eleganter gehen oder nicht?
Auf jeden Fall. Siehe meine Antwort.
Einen schönen Samstag noch.
Gruß, Mathias
Hallo,
function MachWas() {
alert("Es ist was passiert!");
}MeinObjekt.onErgegnis=MachWas;
if(typeof MeinObjekt.onErgegnis == "function")
{MeinObjekt.onErgegnis();}
Das sollte problemlos funktionieren.
Mathias
--
[Visitenkarte](http://community.de.selfhtml.org/visitenkarten/view.php?key=17) · [SELFHTML Weblog](http://aktuell.de.selfhtml.org/weblog/)
Hi Mathias,
Das sollte problemlos funktionieren.
Tut es aber leider eben nicht siehe diese Antwort http://forum.de.selfhtml.org/?t=134639&m=873700 von mir.
Gruß,
Rekire
Hallo,
Ich arbeite gerade an einem Objekt das auch Ereignisse Auslösen soll.
Ich habe es so probiert:
function MachWas() {
alert("Es ist was passiert!");
}MeinObjekt.onErgegnis=MachWas;
if(typeof MeinObjekt.onErgegnis == "function")
{MeinObjekt.onErgegnis();}
Vorausgesetzt, MeinObject ist ein Object, dann sollte das so funktionieren. Folgendes funktioniert jedenfalls:
<body>
<p>Element</p>
</body>
<script type="text/javascript">
<!--
function MachWas() {
alert("Es ist was passiert!");
}
var myP = document.getElementsByTagName("P")[0];
myP.onclick = MachWas;
myP.onEreignis = MachWas;
if(typeof myP.onclick == "function")
{myP.onclick();}
if(typeof myP.onEreignis == "function")
{myP.onEreignis();}
//-->
</script>
viele Grüße
Axel
Hi Axel,
Vorausgesetzt, MeinObject ist ein Object, dann sollte das so funktionieren. Folgendes funktioniert jedenfalls:
Ich habe mein objekt so deklariert:
var MeinObjekt = new Object;
MeinObjekt.onEreignis = new Function();
MeinObjekt.MachErgignis=function(url) {
if(typeof myP.onEreignis == "function")
{MeinObjekt.onEreignis();} // bei dieser Zeile wird dann bei mir ein Fehler ausgelöst das onEreignis keine Funktion sei.
}
Danach weise ich dem onEreignis eine Funktion zu.
function MachWas() {
alert("Es ist was passiert!");
}
MeinObjekt.onEreignis = MachWas;
Wenn ich nun MeinObjekt.MachErgignis() aufrufe wird ein Fehler ausgelöst das onEreignis keine Funktion sei.
Tut mir Leid das ich es bis jetzt so ungenau beschreiben habe.
Gruß,
Rekire
Hallo,
Wenn ich nun MeinObjekt.MachErgignis() aufrufe wird ein Fehler ausgelöst das onEreignis keine Funktion sei.
Keine Ahnung. Dein Beispielcode ist bis auf die myP-Inkonsistenz funktionsfähig. Entweder der Code entspricht nicht deinem Testcode oder der Fehler liegt in dem restlichen Code, den du hier nicht gezeigt hast.
Mein Test:
var MeinObjekt = new Object;
MeinObjekt.onEreignis = null; // ich initialisiere das mal mit null anstatt einer leeren Funktion, das hat aber kein Unterschied, auch mit new Function; tritt bei mir kein Fehler auf
MeinObjekt.feuereEreignis = function () {
if (typeof MeinObjekt.onEreignis == "function") {
MeinObjekt.onEreignis();
}
};
MeinObjekt.onEreignis = function () {
alert("Es ist was passiert!");
};
MeinObjekt.feuereEreignis();
Mathias
hi Mathias,
Ich stelle mich in die Ecke und schäme mich. Es war ein dummer Tippfehler!
Ich wollte nicht den ganzen Quellcode verlinken da die Datei über 100 Zeilen Javascript Code hat.
Wenn ich Fertig bin verlinke ich mal die Seite, bin mir nicht ganz sicher ob ich das alles sauber gescriptet habe.
Gruß,
Rekire