Parameter an Eventhandler übergeben
Hans
- javascript
0 Axel Richter0 Hans0 Axel Richter0 Hans
0 Hans
Hallo!
Wie kann man das Event-Objekt innerhalb eines mit
objekt.onmousemove = tuwas;
registrierten Eventhandlers übergeben (ich weiß, so wird es automatisch übergeben, ich will aber weitere Parameter übergeben).
Ich habe es so versucht:
window.onload=init;
function init()
{
document.getElementById('divtest').onmousemove =
function()
{
tuwas(event, 'Ein Text von divtest');
};
}
Der Parameter 'Ein Text von divtest' wird korrekt übergeben, bei event sagt der Interpreter "event is not defined". Wenn die Funktion tuwas mit einem HTML-Attribut onmouseover="tuwas(event, 'Ein Text von divtest')" aus dem Markup heraus aufgerufen wird, steht das Event-Objekt zur Verfügung.
Hallo,
Hallo!
Wie kann man das Event-Objekt innerhalb eines mit
objekt.onmousemove = tuwas;
registrierten Eventhandlers übergeben (ich weiß, so wird es automatisch übergeben,
Ja, es wird automatisch an die Funktiuon mit dem Bezeichner tuwas übergeben. Diese muss es aber auch annehmen, so z.B.:
function tuwas(evt) {
...
}
ich will aber weitere Parameter übergeben).
Ich habe es so versucht:
window.onload=init;
function init()
{document.getElementById('divtest').onmousemove =
function()
{
tuwas(event, 'Ein Text von divtest');
};
}
Hier wird das Event-Objekt automatisch an die anonyme (namenlose) Funktion function() übergeben.
Diese muss es aber auch annehmen, so z.B.:
document.getElementById('divtest').onmousemove =
function(evt)
{
evt = evt || window.event;
tuwas(evt, 'Ein Text von divtest');
};
}
viele Grüße
Axel
Hier wird das Event-Objekt automatisch an die anonyme (namenlose) Funktion function() übergeben.
Diese muss es aber auch annehmen, so z.B.:
Das tut sie ja
function tuwas(event, text)
{
}
Aus HTML heraus funktioniert die Funktion.
Hier der gesamte Quelltext:
<script>
window.onload=init;
function init()
{
document.getElementById('divtest').onmousemove =
function()
{
tuwas(event, 'Ein Text von divtest');
};
}
function tuwas(event, text)
{
alert ("Eine Event-Eigenschaft: " + event.pageX);
alert ("Ein weiterer Parameter: " + text);
}
</script>
<div id="divtest">Irgendein Div</div>
<div onmousemove="tuwas(event, 'Ein Text von einem Div per Attribut')" style="margin-top:200px">Ein anderes Div</div>
Wenn man
document.getElementById('divtest').onmousemove =
function()
{
tuwas(event, 'Ein Text von divtest');
};
}
durch
document.getElementById('divtest').onmousemove =
function()
{
tuwas('egal', 'Ein Text von divtest');
};
}
ersetzt, kommt immerhin der zweite Parameter an. Sonst passiert gar nichts, außer daß ein "event is not defined" als Fehler gemeldet wird.
Hallo,
Hier wird das Event-Objekt automatisch an die anonyme (namenlose) Funktion function() übergeben.
Diese muss es aber auch annehmen, so z.B.:
Das tut sie ja
function tuwas(event, text)
{
}
Nein, hier nimmt die Funktionn tuwas den Parameter event an.
function init()
{
document.getElementById('divtest').onmousemove =
function()
{
tuwas(event, 'Ein Text von divtest');
};
}
Hiernach wird bei onmousemove über #divtest aber die anonyme Funktion function() aufgerufen. Diese muss das Event-Objekt auch als Parameter annehmen.
function init()
{
document.getElementById('divtest').onmousemove =
function(event)
{
tuwas(event, 'Ein Text von divtest');
};
}
viele Grüße
Axel
Nein, hier nimmt die Funktionn tuwas den Parameter event an.
Hiernach wird bei onmousemove über #divtest aber die anonyme Funktion function() aufgerufen. Diese muss das Event-Objekt auch als Parameter annehmen.
function init()
{
document.getElementById('divtest').onmousemove =
function(event)
{
tuwas(event, 'Ein Text von divtest');
};
}
Ja, habe dann gesehen, was Du meinst. Trotzdem vielen Dank, da kam ich zunächst nicht drauf.
Hier wird das Event-Objekt automatisch an die anonyme (namenlose) Funktion function() übergeben.
Diese muss es aber auch annehmen, so z.B.:
document.getElementById('divtest').onmousemove =
function(evt)
{
evt = evt || window.event;
tuwas(evt, 'Ein Text von divtest');
};
}
Ich Depp, habe ich gar nicht richtig gelesen. Ja, so ist es logisch und funktioniert es. Vielen Dank!