It's not difficult in JavaScript to make an event fire just once.

jQuery provides us with the one() method. Here's our implementation:


'use strict';

const one = ( element, evtName, callback ) => {
	
  element.addEventListener( evtName, e => {
	e.preventDefault();
	if( !element.dataset.fired ) {
		callback();
		element.dataset.fired = true;
	}
   }, false);
};

Through a simple boolean flag we can execute our code just once on a given element.