JSFiddle - React, Tailwind, and code Playground

HTML

<button class="one">one</button>
		
		<button class="two">two</button>
		
		<button class="all">all</button>
		
		<button class="lla">lla</button>
		
		<button class="bang">BANG</button>
		
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<br />
		<input class="checkbox" type="checkbox" /> observer (вкл/выкл)

JavaScript

var testModule = (function (){
	var	observerable = {
	  listeners : {},
	   
	  addListener : function(object, evt, callback) {
	   
	    if ( !this.listeners.hasOwnProperty(evt) ) {
	     
	      this.listeners[evt] = [];
	    }       
	     
	    this.listeners[evt].push(object[callback]);
	     
	  },
	   
	  removeListener : function(object, evt, callback) {
	   
	    if ( this.listeners.hasOwnProperty(evt) ) {
	      var i,length; 
	       
	      for (i = 0, length = this.listeners[evt].length; i < length; i += 1) {
	       
	        if( this.listeners[evt][i] === object[callback]) {
	         
	          this.listeners[evt].splice(i, 1);
	        }
	      } 
	    }
	  },
	   
	  publisher : function(evt, args) {
	   
	    if ( this.listeners.hasOwnProperty(evt) )    {                  
	      var i,length;                     
	       
	      for (i = 0, length = this.listeners[evt].length; i < length; i += 1) {
	       
	         this.listeners[evt][i](args);
	      }         
	    }                           
	  } 
	};


	var one = {
	  callBackOne : function(e) {
	    alert("Вызван подписчик ONE: " + e.message);
	  }   
	};
	 
	var two = {
	  callBackTwo : function(e) {
	    alert("Вызван подписчик TWO: " + e.message);
	  }       
	};

	var three = {
	  callBackThree : function(e) {
	    alert("Вызван подписчик Three: " + e.message);
	  }       
	};

	var bang = {
	  callBackBang : function(e) {
		$('html').css('background', 'red');
		console.log('BANG!');
	  }       
	};

	$('.checkbox').on('click', function(){
		if($(this).prop("checked")){
			$('.one').on('click', function(){
				observerable.publisher("someEventForB", {message : "i am one event"});
			});

			$('.two').on('click', function(){
				observerable.publisher("someEventForA", {message : "i am two event"});
			});

			$('.all').on('click', function(){
				observerable.publisher("someEventForC", {message : "i am two event"});
			});

			$('.lla').on('click',...