Sólo comentar dos cosillas:
Código PHP:
function foo(){
alert("Hola Mundo");
}
obj.onclick = foo(); (a)
//ó
obj.onclick = foo; (b)
La forma (a) funciona siempre que
foo() devuelva una función. Es decir:
Código PHP:
function foo(){
var f = function() {
alert("Hola Mundo");
};
return f;
}
Tolo lo que le asignes a
onclick tiene que ser una función en sí, no el resultado de esa función (tu
obj.onclick = foo(); es lo mismo que
obj.onclick = undefined; porque tu
foo() no devuelve nada , o undefined).
Funciones que devuelven funciones, un temita complicado, pero leí hace poco un par de utilidades que puede tener. De momento sólo les veo complicación.
Un saludo.