molily: [Mootools] Funktionen als Parameter in .addEvent einbinden

Beitrag lesen

showYesNo("wollen sie den Artikel löschen?", deleteArticle(id), hideYesNo);

Wie gesagt rufst du hier die Funktion deleteArtice mit dem Parameter id auf. Der Rückgabewert dieses Aufrufs (vermutlich undefined) wird dann als Parameter an die Funktion showYesNo übergeben. Dort kommt also kein Funktionsobjekt an.

Was du vorhast, kannst du mit Currying lösen. Dabei erzeugst du eine Funktion, welche eine andere mit vordefinierten Parametern aufruft. Das lässt sich in Mootools mit der Methode pass von Funktionsobjekten lösen:

showYesNo("wollen sie den Artikel löschen?", deleteArticle.pass(id), hideYesNo);

Beispiel: http://jsfiddle.net/NcUKQ/2/

deleteArticle.pass(id) gibt wiederum ein neues Funktionsobjekt zurück, welches beim Aufruf die Funktion deleteArticle mit dem Parameter id aufruft.

Mathias