Hola
No puedo explicarte mucho, solo se que es una función anónima
Prueba con esto
Código Javascript
:
Ver original<html>
<head>
<script type="text/javascript">
function ValoresP() {
var ref = document.getElementById("contenedor").getElementsByTagName("p");
for (var i = 0; i < ref.length; i++) {
(function(){
var elemento = ref[i];
var nomevento = "click";
var funcion = function() {
alert(document.getElementById(this.id).innerHTML)
}
if (elemento.attachEvent)
{
var f=function(){
funcion.call(elemento,window.event);
}
elemento.attachEvent('on'+nomevento,f);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,false);
return true;
}
else
return false;
})()
}
}
window.onload = function(){ValoresP();};
</script>
</head>
<body>
<div id="contenedor">
<p id="p1">Primer párrafo</p>
<p id="p2">Segundo párrafo</p>
</div>
</body>
</html>
Edito:
@ZK cosas que pasan. Menos mal que tu lo explicas
Suerte