JavaScript non dispone di un metodo per invocare una funzione una sola volta. Fortunatamente esiste una soluzione.
Si tratta semplicemente di impostare un flag di stato e vincolare l'esecuzione del codice a talee flag:
(function() {
function callOnce( flag, func ) {
if( !flag.fired ) {
func();
}
}
document.addEventListener( "DOMContentLoaded", function() {
var pointerObj = {
fired: false
},
times = 0;
callOnce( pointerObj, function() {
times++;
document.getElementById( "output" ).innerHTML = times;
});
pointerObj.fired = true;
callOnce( pointerObj, function() {
times++;
document.getElementById( "output" ).innerHTML = times;
});
});
})();