-
Notifications
You must be signed in to change notification settings - Fork 121
/
ender.js
65 lines (52 loc) · 1.85 KB
/
ender.js
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
!function ($) {
var b = require('bean')
, integrate = function (method, type, method2) {
var _args = type ? [type] : []
return function () {
for (var i = 0, l = this.length; i < l; i++) {
if (!arguments.length && method == 'on' && type) method = 'fire'
b[method].apply(this, [this[i]].concat(_args, Array.prototype.slice.call(arguments, 0)))
}
return this
}
}
, add = integrate('add')
, on = integrate('on')
, one = integrate('one')
, off = integrate('off')
, fire = integrate('fire')
, clone = integrate('clone')
, hover = function (enter, leave, i) { // i for internal
for (i = this.length; i--;) {
b['on'].call(this, this[i], 'mouseenter', enter)
b['on'].call(this, this[i], 'mouseleave', leave)
}
return this
}
, methods = {
'on' : on
, 'addListener' : on
, 'bind' : on
, 'listen' : on
, 'delegate' : add // jQuery compat, same arg order as add()
, 'one' : one
, 'off' : off
, 'unbind' : off
, 'unlisten' : off
, 'removeListener' : off
, 'undelegate' : off
, 'emit' : fire
, 'trigger' : fire
, 'cloneEvents' : clone
, 'hover' : hover
}
, shortcuts =
('blur change click dblclick error focus focusin focusout keydown keypress '
+ 'keyup load mousedown mouseenter mouseleave mouseout mouseover mouseup '
+ 'mousemove resize scroll select submit unload').split(' ')
for (var i = shortcuts.length; i--;) {
methods[shortcuts[i]] = integrate('on', shortcuts[i])
}
b['setSelectorEngine']($)
$.ender(methods, true)
}(ender);