Если вы просто хотите, чтобы он запускался один раз, просто уничтожьте ссылку в нижней части функции.
var updateNumRedDivs = function() {
// ... actual handling here
updateNumRedDivs = function(){};
}
Несколько раз я бы использовал закрытие, например,
// This will run five times, before destroying
var updateNumRedDivs = function(amount) {
var calls = 0;
return function () {
// handle event
if (++calls === amount) updateNumRedDivs = function() {};
};
}(5)
Редактировать:
Возможно, ваше намерение неправильно понято с помощью функции, которая запускается один или несколько раз.Вы ищете функцию, которая запускается только один раз из каждого источника, или функцию, которая не будет ограничена общим количеством вызовов, а вместо этого будет n вызовов из одного источника?