![]() | |
![]() |
| | Thread Tools | Display Modes |
#11
| |||
| |||
|
|
Jetzt sagst du zu attachEvent() _ebenfalls_ "proprietär"! Gut beobachtet. attachEvent() -- nicht zu velwechsern mit addEventListener() -- ist eine Methode des MSHTML-DOMs. Doof gefragt...Was wäre denn dann "nicht proprietär"? :-) Standardkonform ist eine Implementation von EventTarget::addEventListener(), wie ich schon erwähnte. |
|
Man könnte jedoch tetrapilotomisch argumentieren, dass selbst standardisierte Schnittstellen immer einen Ansatzpunkt in der DOM-Implementation brauchen, der notwendigerweise implementationsspezifisch und somit proprietär ist. Insofern ist vollständig standardkonformes DOM-Scripting gar nicht möglich; |
|
dies hat jedoch keine praktische Relevanz und wird daher i.d.R. zu Recht vernachlässigt. |
#12
| ||||||
| ||||||
|
|
Andreas Eibach schrieb: tdObj = document.createElement ("TD"); ... tdObj.onmouseover = function () { tuWas( ??? ) } "this" an der Stelle ??? wäre Unfug, da es sich auf ein ganz anderes Element beziehen würde! auf was soll es sich denn beziehen? |
|
obj.onmouseover = function (this) { (assign this = param #1 to local var); call tuWas (local var)) Du willst also dem Eventhandler (der zugewiesen Funktion) zum Zeitpunkt des Aufrufs noch eine Variable bekannt machen, die obj nicht kennt. |

|
Ist denn die Funktion tuWas eine Methode des Objektes welches du mit this referenzierst? Oder ist es eine Methode des window Objektes? |
|
Hier mal was zum Probieren: code snip |
|
Wenn der Eventhandler eine Methode eines Objektes[*] ist, dann könnte ich dir noch einen eleganteren Weg vorschlagen. |
|
MyClass.prototype.handleMouseOver = function(event){ // hier soll this auf auf mein Objekt zeigen und nicht auf die Node. }; |
#13
| |||
| |||
|
|
Andreas Eibach schrieb: tdObj = document.createElement ("TD"); ... tdObj.onmouseover = function () { tuWas( ??? ) } "this" an der Stelle ??? wäre Unfug, da es sich auf ein ganz anderes Element beziehen würde! Was meinst du mit ganz anderes Element? this ist == tdObj |
#14
| |||
| |||
|
|
"Thomas 'PointedEars' Lahn" <PointedEars (AT) web (DOT) de> wrote: Jetzt sagst du zu attachEvent() _ebenfalls_ "proprietär"! Gut beobachtet. attachEvent() -- nicht zu velwechsern mit addEventListener() -- ist eine Methode des MSHTML-DOMs. Doof gefragt...Was wäre denn dann "nicht proprietär"? :-) Standardkonform ist eine Implementation von EventTarget::addEventListener(), wie ich schon erwähnte. Jo. War ne Verwechslung: ...Event() mit ...EventListener(). Richtig erkannt. |
|
Man könnte jedoch tetrapilotomisch argumentieren, dass selbst standardisierte Schnittstellen immer einen Ansatzpunkt in der DOM-Implementation brauchen, der notwendigerweise implementationsspezifisch und somit proprietär ist. Insofern ist vollständig standardkonformes DOM-Scripting gar nicht möglich; Davon ging ich auch nicht aus...(leider) dies hat jedoch keine praktische Relevanz und wird daher i.d.R. zu Recht vernachlässigt. Darf ich? s/zu Recht/gezwungenermaßen/ :-(( Yes. Weil jeder Browser seinen Stiefel zelebriert. |
|
Naja noch ist nicht alle Hoffnung begraben; zumindest im Layoutbereich keimt eine auf, welche mit lediglich drei Buchstaben und einer Zahl beschrieben ist: CSS3. Doch was nützen die besten Standards, wenn sie browserseitig nur rudimentär unterstützt werden! |
#15
| |||
| |||
|
|
W3C-Politik gehört jedoch nicht hierher. EOD? |
#16
| ||||
| ||||
|
|
""J. Strübig"" <struebig (AT) uni-mainz (DOT) de> wrote: Andreas Eibach schrieb: tdObj = document.createElement ("TD"); ... tdObj.onmouseover = function () { tuWas( ??? ) } "this" an der Stelle ??? wäre Unfug, da es sich auf ein ganz anderes Element beziehen würde! Was meinst du mit ganz anderes Element? this ist == tdObj Hatte ich auch gedacht; _innerhalb_ der { } der function ist es jedoch offenbar _nicht_ mehr tdObj! |
|
[...] tdObj.onmouseover = function () { tuWas2 (this.id) } ^ |
|
Ich bekam bereits bei this.id einen Fehler; also musste ich davon ausgehen, dass es sich nicht um eine Referenz aufs tdObj handelt! |
|
(Quasi-)Hartcodiert funktionierte es allerdings. (also irgendwas unflexibles mit .previousSibling.id in der function). |
#17
| |||
| |||
|
|
"Ralf Beutler" <spamMe (AT) brain4 (DOT) de> wrote: Andreas Eibach schrieb: "this" an der Stelle ??? wäre Unfug, da es sich auf ein ganz anderes Element beziehen würde! auf was soll es sich denn beziehen? Auf das tdObj, von dem es jeweils aufgerufen wurde. [..] tdObj.onmouseover = function {... }; [..] _Innerhalb_ der { } der 'function' geht das nach Tests _nicht_ mit "this", da sich "this" da drinnen _nicht_ mehr auf tdObj bezieht, was mir anfangs auch noch nicht klar gewesen war. Richtig? |
|
Hier mal was zum Probieren: code snip Danke - werd ich mal austesten. |
#18
| |||
| |||
|
|
_Wäre_ es tdObj, hätte der Handler ja so aufgerufen werden können: tdObj.onmouseover = function () { tuWas2 (this.id) } |
#19
| |||
| |||
|
|
Andreas Eibach schrieb: _Wäre_ es tdObj, hätte der Handler ja so aufgerufen werden können: tdObj.onmouseover = function () { tuWas2 (this.id) } Kannst du das als testcase ins Internet stellen? |

#20
| |||
| |||
|
|
""J. Strübig"" <struebig (AT) uni-mainz (DOT) de> wrote: Andreas Eibach schrieb: tdObj = document.createElement ("TD"); ... tdObj.onmouseover = function () { tuWas( ??? ) } "this" an der Stelle ??? wäre Unfug, da es sich auf ein ganz anderes Element beziehen würde! Was meinst du mit ganz anderes Element? this ist == tdObj Hatte ich auch gedacht; _innerhalb_ der { } der function ist es jedoch offenbar _nicht_ mehr tdObj! |
|
tdObj.onmouseover = function () { tuWas2 (this.id) } |
![]() |
| Thread Tools | |
| Display Modes | |
| |