Homepage selbermachen 7.849 Themen, 35.573 Beiträge

Problem bei JS-Funktion: Wo ist der Fehler?

wlaner / 6 Antworten / Flachansicht Nickles

Hallo,
mein Problem: Eine JS-Funktion macht nicht (sofort) das was sie soll, erst beim zweiten Aufruf.

Hier erstmal der Quellcode-Ausschnitt:

  
<div id="1" class="noBlock">
<a href="[...]" target="_blank">[...]</a>
<noscript><a href="[...]del.php?id=1"></noscript>
<img src="imgs/del.gif" onClick="javascript:del(1);" border="0">
<noscript></a></noscript>
<br />
http://www.adresse.xyz
</div>

...

function del(delID)
{
// linkzahl korrigieren
var numLinks = document.getElementById("dynNumLinks").firstChild.nodeValue - 1;
document.getElementById("dynNumLinks").firstChild.nodeValue = numLinks;
// zu ladende url
loadURL = "./jobs/ajax/delete.php?lid=" + delID;
// url async. aufrufen
reload(0, loadURL, 1);
// eintrag loeschen
document.getElementById(delID).parentNode.removeChild(document.getElementById(delID));
}



Also. In dem div befindet sich eine Grafik, die auf onClick reagiert und del() aufruft.
(Alternativ wird für nichtaktiviertes JS ein PHP-Script aufgerufen, aber das sollte nichts mit dem Problem zu tun haben.)

del() hat die Aufgabe, eine im Text angegeben Zahl zu korrigieren, eine Url asynchron zu laden und schließlich den div mit der übergebenen Id zu entfernen.

Wenn nun die Funktion zum ersten mal aufgerufen wird, funktioniert alles, bis auf das Entfernen des divs. Wird die Funktion nun ein zweites mal mit der selben Id aufgerufen (also einfach ein neuer Klick auf das noch vorhandene Bild), so wird der div entfernt.
Folgen jetzt weitere Aufrufe der Funktion mit anderen Ids funktioniert alles schon von Anfang an, ohne dass ein zweiter Aufruf nötig ist.
Folglich tritt das Problem nur beim ersten Aufruf auf.

Weis echt nicht woran das liegen könnte...sieht jemand den Fehler?

WL

PS: Wenn jemand den ganzen JS-Code braucht, melden.
PPS: Is n bissl unübersichtlich geworden, hoffe man kommt zurecht :)
bei Antwort benachrichtigen
xafford wlaner „Hi xafford. Das ganze ist derzeit in meinem sich noch in der Entwicklung...“
Optionen

Ich denke ich hab den Fehler gefunden. Die erste ID wird in zwei DIVs definiert im Quelltext, einmal steht sie in einem DIV mit der ID "newlinkarea" und dann nochmal darunter. Deswegen verschwindet zuerst das DIV, welches man nicht sieht (betrifft dann nur das erste).

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen