buenas gentes!
antes quise contestar este tema y me faltaba poco pero por deberes que tenia que cumplir no me fue posible publicar el mensaje.
de todos modos, lo que queria compartir era que en teoria el codigo esta bien. en javascript, para crear un closure se necesita de un scope. dichos scopes solamente se pueden crear con funciones. de modo que la forma en que lo has hecho es correcta.
ahora bien, viendo el codigo de panino, me parece el mas adecuado. porque desde el evento, la informacion la obtiene desde el elemento.