Utiliza el método
removeEventListener
para desligar al evento del elemento en cuestión.
Código Javascript
:
Ver originalvar input = document.querySelector("#foo");
input.addEventListener("focus", function(event){
alert("Solo verás este mensaje una vez.");
this.removeEventListener("focus", arguments.callee);
}, false);
DEMO
Saludos
Edito: Antes de que me lo preguntes, la presencia de
arguments.callee
se debe a que la función que se ejecuta es anónima (no posee un nombre) y como lo que deseo es que ya no se ejecute dicha función al volver a dar el enfoque a la caja de texto, hago referencia a ella utilizando la propiedad en cuestión.