Homepage selbermachen 7.846 Themen, 35.563 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
wlaner xafford „Stell das Ganze bitte mal als Seite online, da auch die Seitenstruktur nicht...“
Optionen

Hi xafford.
Das ganze ist derzeit in meinem (sich noch in der Entwicklung befindenden) Projekt eingebunden.
HTML- und JS-Code.

Log dich einfach als Benutzer Test mit dem Passwort test ein. (Gilt natürlich für alle)

Der Aufruf der Funktion del erfolgt über die Grafik:

wlaner

Edit:
Was noch zu erwähnen ist:
Das ganze funktioniert beim ersten Aufruf vollständig, und zwar dann wenn der/das div gerade erst per JS erstellt wurde ("Neuen Link eintragen") und die Seite vom Benuter noch nicht neu geladen wurde.

bei Antwort benachrichtigen