My favorites | Sign in
Project Logo
       
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/*===================================================*
* *
* Event Model *
* *
* *
* USAGE: *
* *
* Event.bind(class, event, name, function); *
* *
* This binds an event function to the system *
* *
* Event.unbind(class, event, name); *
* *
* This unbinds an event function from the *
* system *
* *
* Event.change(class, event, name, function); *
* *
* This changes the function run *
* *
* Event.trigger(class, event, [args]); *
* *
* This calls all the functions registered to the *
* event in the order registered. *
* *
**===================================================*/


var Event = window.Event = {
events: {
// storage var.
},

trigger: function(klass, name, arg){
if(this.events[klass]){
if(this.events[klass][name]){
for(var i in this.events[klass][name]){
this.events[klass][name][i](arg);
}
}
}
},
bind: function(klass, event, name, fn){
if(!this.events[klass]){
this.events[klass] = {};
}
if(!this.events[klass][event]){
this.events[klass][event] = {};
}
if(!this.events[klass][event][name]){
this.events[klass][event][name] = fn;
}
},
unbind: function(klass, event, name){
if(this.events[klass]){
if(this.events[klass][event]){
if(this.events[klass][event][name]){
delete this.events[klass][event][name]
}
if(this.events[klass][event].length == 0){
delete this.events[klass][event];
}
if(this.events[klass].length == 0){
delete this.events[klass];
}
}
}
},
change: function(klass, event, name, fn){
if(this.events[klass] && this.events[klass][event] && this.events[klass][event][name]){
this.events[klass][event][name] = fn;
}else{
this.bind(klass, event, name, fn);
}
}

};
Show details Hide details

Change log

r94 by miksago on May 12, 2008   Diff
Fixed bug with classes not allowing
multiple events. [was critical]
Go to: 
Project members, sign in to write a code review

Older revisions

r83 by miksago on Apr 17, 2008   Diff
fixed bug in Event.change
this.register should've been
this.bind...
r80 by miksago on Apr 06, 2008   Diff
added EventJS
added Skin for dAmnZilla
All revisions of this file

File info

Size: 2686 bytes, 77 lines

File properties

svn:eol-style
native
svn:keywords
Date Revision Author URL Id
Hosted by Google Code