Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.12.2010, 16:11
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

"Искусственные" события.
Что-то найти никак не могу как реализовать вот это:
myObj.onMyEvent = что-то делать

//если где-то что-то произошло, то:
MyEvent.fire();

Смысл в том, что мы вызываем (генерируем) какое-то своё событие (MyEvent) при этом есть объект "myObj" котрый умеет узнавать что произошло событие "MyEvent" и как-то по-своему реагирует на него, помимо этого может быть ещё много всяких объектов, котрые каждый по-своему реагируют на "MyEvent".

Я знаю, есть "observer pattern" но там я что-то не найду ответ.

Господа, ткните носом, пожалуйста, где читать. Или такое в природе вообще не возможно или не так делается, а вовсе по-другому.
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2010, 17:45
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

Решение:
var customEvents = {
		    _handlers : {},
		
		    subscribe: function(event, handler){
		       if(typeof(this._handlers[event])=="undefined")
		           this._handlers[event]=[]; 
		       this._handlers[event].push(handler);
		    },
		
		    fire:function(event, data){
		        if(this._handlers[event]){
		            for(var i = 0; i < this._handlers[event].length; i++){
		                this._handlers[event][i](data);
		            }
		        }
		    }
	};


var myObj1 = new function(){
		this.handler = function(data){
			console.log(data+'1');
		};
		customEvents.subscribe("greatEvent", this.handler);
	};	
	
	
	
var myObj2 = new function(){
		this.handler = function(data){
			console.log(data+'2');
		};
		customEvents.subscribe("greatEvent", this.handler);
	};	
	
	
//что-то где-то произошло
customEvents.fire("greatEvent", 'ta-da');

всем спасибо, все свободны
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение события Paste klimashkin Events/DOM/Window 1 13.11.2010 16:30
Обработка события элемента внутри создавшего его объекта pauluss Общие вопросы Javascript 10 10.09.2010 16:01
События Jquery и не только Tohin Events/DOM/Window 3 21.08.2009 13:57
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 16:47
Явный вызов процедуры обработки события. supchik Общие вопросы Javascript 18 27.01.2009 12:16