Onclick funktioniert nicht (removeChild)
Mario
- javascript
0 Kai3450 Mario
0 Der Martin
Guten Abend,
ich versuche mit onclick ein removeChild auszulösen:
myLink.onclick = document.removeChild(div);
div.appendChild(myLink);
(myLink ist ein Link)
Eig. müsste nach meiner Vorstellung der div erst gelöscht werden, wenn ich auf den Link klicke. Der div (habs auch schon mit einem Bild probiert) wird jedoch gleich zerstört, wenn ich die Funktion aufrufe, in der ich MyLink erstelle.
Ich hoffe ihr könnt mir weiterhelfen.
Gruß, Mario
PS: Ich hoffe der Codeschnipsel reicht, schicke gern auch den gesamten Code, wollten nur nicht alle gleich damit abschrecken.
[latex]Mae govannen![/latex]
myLink.onclick = document.removeChild(div);
Eig. müsste nach meiner Vorstellung der div erst gelöscht werden, wenn ich auf den Link klicke.
Nein. Lies das (Am Besten nicht nur diesen Abschnitt, sondern alles; lohnt sich)
Cü,
Kai
Vielen Dank, für den Link.
Er war sehr hilfreich. Es funktioniert nun alles, so wie es soll.
Also nochmal danke euch beiden.
Gruß, Mario
Hallo,
myLink.onclick = document.removeChild(div);
div.appendChild(myLink);
>
> (myLink ist ein Link)
> Eig. müsste nach meiner Vorstellung der div erst gelöscht werden, wenn ich auf den Link klicke.
dann musst du deine Vorstellung berichtigen. Denn du rufst hier removeChild() auf und das Funktionsergebnis, also das aus dem DOM gelöschte Objekt, weist du dann dem Eventhandler zu (was natürlich keinen Sinn ergibt).
Du musst stattdessen eine Referenz auf die auszuführende Funktion übergeben:
`obj.onclick = funktion;`{:.language-javascript}
Da du der Funktion noch Argumente mitgeben möchtest, ist das nicht ganz so trivial; du wirst den Funktionsaufruf vermutlich noch in eine anonyme Funktion kapseln wollen:
`myLink.onclick = function() { document.removeChild(div); };`{:.language-javascript}
> PS: Ich hoffe der Codeschnipsel reicht
Das Problem ist eindeutig, fast schon ein Klassiker. Darum hatte [Kai](https://forum.selfhtml.org/?t=190055&m=1266286) auch gleich einen Beitrag von Mathias Schäfer zur Hand.
So long,
Martin
--
Lache, und die Welt wird mit dir lachen.
Schnarche, und du schläfst allein.