Ereignisüberwachung im IE und Mozilla gleich?
Andreas-Lindig
- javascript
Hallo Forum,
jetzt hat's mich aber doch umgehaun. Gestern habe ich ein schönes drag'n'drop-Script ausprobiert: http://aktuell.de.selfhtml.org/tippstricks/dhtml/draganddrop/index.htm
und siehe da: es funktioniert.
Mich wundert aber, dass dort einfach nur den event-Handlern des document-Objekts die entsprechenden Funktionen zugewiesen werden:
document.onmousemove = funktion1
document.onmouseup = funktion2
was ist denn mit der ganzen komplizierten Ereignisueberwachung mit 'addEventListener'
und so nach dem w3c-Dom - ist das im Mozilla also ueberfluessig? Wofür wird das überall so lang und schmutzig beschrieben?
gruß, Andreas
Hallihallo!
Ich hatte auch eine zeitlang das Gefühl, daß die eventhandler von IE und Mozilla gleich behandelt werden, aber dem ist nicht ganz so.
Und zwar kenne ich (im Moment) genau einen eventhandler, den der IE kennt, der Mozilla aber nicht.
Und das ist der eventhandler "ondragstart". Er ist für mich interessant gewesen, weil ich auch dieses Beispiel benutzt hatte, in den Ebenen aber Bilder enthalten waren. Wenn man nun auf diese Bilder klickte und die Ebenen verschieben wollte, ging das nicht. Stattdessen kam der Cursor, mit dem das System anzeigte, daß es einen eigenen Drag & Drop- Vorgang starten wollte.
Im IE konnte man das Problem umgehen, indem man in das Javascript Folgendes einfügte:
ondragstart = Funktion {return false;} (oder so ähnlich...)
Im Mozilla geht das aber nicht, weil er den eventhandler "ondragstart" nicht kennt.
Jetzt kenne ich leider die von Dir angegebene W3C- Quelle nicht, vielleicht beinhaltet die ja eine Lösung für das oben beschriebene Problem im Mozilla.
Falls ja, kann man also sagen, daß die Geschichte mit dem 'AddEventListener' alles Andere als überflüssig ist...
Falls aber nicht, stimme ich Deinem Posting zu ;)
Viele liebe Grüße,
Der Dicki
Hallihallo!
hollodrio!
Er ist für mich interessant gewesen, weil ich auch dieses Beispiel benutzt hatte, in den Ebenen aber Bilder enthalten waren. Wenn man nun auf diese Bilder klickte und die Ebenen verschieben wollte, ging das nicht...
genau das hatte ich gestern auch, also habe ich die Div's wieder so gelassen. Es geht, wenn man die Bilder ohne Div's drumherum setzt und die Stylesheets eben in das img-Tag. Das Problem ist, daß mit 'this' in dem Fall nämlich das Bild übergeben wird und nicht das Div. Mit 'parentElement' geht auch nichts, weil die Browser da das body-Tag statt des übergeordneten div's übergeben - sehr mysteriös...
Jetzt kenne ich leider die von Dir angegebene W3C- Quelle nicht, vielleicht beinhaltet die ja eine Lösung für das oben beschriebene Problem im Mozilla.
jo mei, im SelfHTML wird lang und breit die Ereignisübewachung nach w3c-Standard beschrieben. Ansonsten z.B. im Buch 'JavaScript' von Stefan Koch. Er stellt auch ein schönes Script vor, allerdings vieeel komlizierter:
http://www.dpunkt.de/javascript/bsp/script2/dragdrop/index.html
Gruß, Andreas
--
http://dhtml.andeas-lindig.de
Hallihallo!
genau das hatte ich gestern auch, also habe ich die Div's wieder so gelassen. Es geht, wenn man die Bilder ohne Div's drumherum setzt und die Stylesheets eben in das img-Tag. Das Problem ist, daß mit 'this' in dem Fall nämlich das Bild übergeben wird und nicht das Div. Mit 'parentElement' geht auch nichts, weil die Browser da das body-Tag statt des übergeordneten div's übergeben - sehr mysteriös...
Die Idee, die Bilder ohne Divs drumherum ist mir gar nicht gekommen...
Ich hatte es im Endeffekt dann so gelöst, daß ich die Bilder als Hintergrundbilder für die Divs gesetzt hatte. Dadurch kam ich gar nicht mehr in die Verlegenheit, daß der Mauszeiger mit den Bildern in Berührung kam...
http://www.ewetel.net/~tobias.hahner/test/dragtest.html
jo mei, im SelfHTML wird lang und breit die Ereignisübewachung nach w3c-Standard beschrieben. Ansonsten z.B. im Buch 'JavaScript' von Stefan Koch. Er stellt auch ein schönes Script vor, allerdings vieeel komlizierter:
http://www.dpunkt.de/javascript/bsp/script2/dragdrop/index.html
Den link guck ich mir mal an...
Viele liebe Grüße,
Der Dicki