Come faccio ad invocare una funzione JavaScript una sola volta?

Come faccio ad invocare una funzione JavaScript una sola volta?

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;
		});
	});

})();

Torna su