michael: Abfangen falls Ajax-Formular noch nicht gespeichert wurde

Beitrag lesen

Hallo,

wenn der Link ein onclick-Attribut hatte (btw: gewöhn Dir bitte die Kleinschreibung an - spätestens in XHTML gibt es kein "onClick", sondern nur "onclick", und in JavaScript sowieso), so hat das JavaScript-Objekt des Links eine onclick-Eigenschaft, die eine Funktion enthält. Speichere diese, und überschreibe die onclick-Eigenschaft mit einer Funktion, die (neben ihrer eigentlichen Tätigkeit) die gespeicherte Funktion ausführt.

Ok da habe ich aber 'ne Frage zur JS Syntax:

mache ich das dann z.B. so:

oldOnClick = myObj.onclick;

myObj.onclick = myFunc(oldOnClick);

und in myFunc() dann ein

eval(oldOnClick);

oder geht das eleganter?

oder ist das Wurst?

Im Prinzip ja - beides ist Unsinn. Wenn Du keine Ressource verlinken willst, existiert kein Grund, einen Link zu verwenden. Das onclick-Attribut ist für praktisch alle Elemente einsetzbar.

Ja stimmt, das mache ich nur weil <a> CSS-mäßig anders behandelt wird.

Eine andere Frage habe ich aber jetzt doch noch:

Gibt es eine onunload Methode oder Vergleichbares für einzelne <div>s? Also sowas wie $('meinDiv').onunload = meineFunc()?

Das Problem ist nämlich, sofern ich es nach Vinzenz Methode mit onbeforeunload mache, dass ich das savedFlag wieder zurücksetzen muss sofern nicht gespeichert werden soll. Das kann ich aber definitiv erst in dem onunload Event abfangen. Das aber funktioniert wiederum nur für window.onunload = meineFunc(), also wenn ich wirklich eine komplett neue Seite lade, nicht aber wenn ich nur <div>s neu lade!

Vielen Dank
Michael