jQuery :: Callbacks

Proving that instance functions can be independently added and removed from a Callbacks object.

by StephenM

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>

JavaScript

var list = $.Callbacks();

var Class1 = function(name) {
	var _this = this;
  
  this.name = name;
  
  this.onSomething = function() {
  	console.log(_this.name);
  }
  
  list.add(this.onSomething);
  
  this.detach = function() {
    list.remove(this.onSomething);
  }
}

console.log("TEST: EXPECT 1, 2, 3...");

var ein = new Class1("ein");
var zwei = new Class1("zwei");
var drei = new Class1("drei");

list.fire();

console.log("TEST: EXPECT 2, 2...");

zwei.onSomething();
zwei.onSomething();

console.log("TEST: EXPECT 2, 2...");

zwei.detach();

zwei.onSomething();
zwei.onSomething();

console.log("TEST: EXPECT 1, 3...");

list.fire();