1
1
var match_selector = require ( './match_selector.js' ) ;
2
2
3
- var event_handler = function ( root , listeners ) {
4
- return function ( e ) {
3
+ var DOMD = function ( node ) {
4
+ // 0 - bubbling, 1 - capturing
5
+ var listeners = [ { } , { } ] ;
6
+
7
+ var handler = function ( e ) {
5
8
var ret ;
6
9
var target = e . target ;
7
10
@@ -35,7 +38,7 @@ var event_handler = function (root, listeners) {
35
38
// Find triggered element cuz we can get child of it in e.target
36
39
while ( target ) {
37
40
for ( var i in list ) {
38
- if ( match_selector ( root , target , list [ i ] . selector ) ) {
41
+ if ( match_selector ( node , target , list [ i ] . selector ) ) {
39
42
ret = list [ i ] . callback ( e , target ) ;
40
43
break ;
41
44
}
@@ -47,41 +50,40 @@ var event_handler = function (root, listeners) {
47
50
}
48
51
}
49
52
50
- if ( target === root ) {
53
+ if ( target === node ) {
51
54
break ;
52
55
}
53
56
54
57
target = target . parentElement ;
55
58
}
56
59
} ;
57
- } ;
58
60
59
- module . exports = function ( node ) {
60
- // 0 - bubbling, 1 - capturing
61
- var listeners = [ { } , { } ] ;
61
+ this . on = function ( event , selector , callback , use_capture ) {
62
+ var map = listeners [ use_capture ? 1 : 0 ] ;
63
+ if ( ! map [ event ] ) {
64
+ map [ event ] = [ ] ;
65
+ node . addEventListener ( event , handler , ! ! use_capture ) ;
66
+ }
62
67
63
- return {
64
- on : function ( event , selector , callback , use_capture ) {
65
- var map = listeners [ use_capture ? 1 : 0 ] ;
66
- if ( ! map [ event ] ) {
67
- map [ event ] = [ ] ;
68
- node . addEventListener ( event , event_handler ( node , listeners ) , ! ! use_capture ) ;
69
- }
68
+ map [ event ] . push ( {
69
+ selector : selector ,
70
+ callback : callback
71
+ } ) ;
72
+ } ;
70
73
71
- map [ event ] . push ( {
72
- selector : selector ,
73
- callback : callback
74
- } ) ;
75
- } ,
76
-
77
- off : function ( event , selector ) {
78
- listeners . forEach ( function ( map ) {
79
- for ( var i in map [ event ] || [ ] ) {
80
- if ( map [ event ] [ i ] . selector === selector ) {
81
- map [ event ] . splice ( i , 1 ) ;
82
- }
74
+ this . off = function ( event , selector ) {
75
+ listeners . forEach ( function ( map ) {
76
+ for ( var i in map [ event ] || [ ] ) {
77
+ if ( map [ event ] [ i ] . selector === selector ) {
78
+ map [ event ] . splice ( i , 1 ) ;
83
79
}
84
- } ) ;
85
- }
80
+ }
81
+ } ) ;
86
82
} ;
83
+
84
+ return this ;
85
+ } ;
86
+
87
+ module . exports = function ( node ) {
88
+ return new DOMD ( node ) ;
87
89
} ;
0 commit comments