Y si quieres tenerlo de forma general, es decir, ejecutar cualquier evento una sola vez en cualquier elemento (del mismo modo en el que se realiza con el método
.one()
de jQuery), puedes implementar esto:
Código Javascript
:
Ver originalwindow.Element.prototype.one = function(event, callback){
this.addEventListener(event, this.call = function(){
callback();
this.removeEventListener(event, this.call, false);
}, false);
};
document.querySelector("#id_elemento").one("click", function(){
alert("Solo verás este mensaje una vez.");
});
De este modo, aplicas este método a cualquier elemento del documento.
DEMO
Saludos