MCPcopy
hub / github.com/jquery/jquery / on

Function on

src/event.js:24–83  ·  view source on GitHub ↗
( elem, types, selector, data, fn, one )

Source from the content-addressed store, hash-verified

22}
23
24function on( elem, types, selector, data, fn, one ) {
25 var origFn, type;
26
27 // Types can be a map of types/handlers
28 if ( typeof types === "object" ) {
29
30 // ( types-Object, selector, data )
31 if ( typeof selector !== "string" ) {
32
33 // ( types-Object, data )
34 data = data || selector;
35 selector = undefined;
36 }
37 for ( type in types ) {
38 on( elem, type, selector, data, types[ type ], one );
39 }
40 return elem;
41 }
42
43 if ( data == null && fn == null ) {
44
45 // ( types, fn )
46 fn = selector;
47 data = selector = undefined;
48 } else if ( fn == null ) {
49 if ( typeof selector === "string" ) {
50
51 // ( types, selector, fn )
52 fn = data;
53 data = undefined;
54 } else {
55
56 // ( types, data, fn )
57 fn = data;
58 data = selector;
59 selector = undefined;
60 }
61 }
62 if ( fn === false ) {
63 fn = returnFalse;
64 } else if ( !fn ) {
65 return elem;
66 }
67
68 if ( one === 1 ) {
69 origFn = fn;
70 fn = function( event ) {
71
72 // Can use an empty set, since event contains the info
73 jQuery().off( event );
74 return origFn.apply( this, arguments );
75 };
76
77 // Use same guid so caller can remove using origFn
78 fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
79 }
80 return elem.each( function() {
81 jQuery.event.add( this, types, fn, data, selector );

Callers 1

event.jsFile · 0.70

Calls 1

jQueryFunction · 0.90

Tested by

no test coverage detected