рдЬрд╣рд╛рдВ jQuery рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИ

"рдЗрдВрдЯрд░рдиреЗрдЯ" рдореЗрдВ рдореБрдЭреЗ рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рдЙрддреНрддрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд╣реИрдВрдбрд▓рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ:
$(elem).data('events') 

рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ jQuery рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдордЭрдирд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛ рдХрд┐ рд╡реЗ рдХрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред

рддреЛ, рдЪрд▓реЛ рдХреНрд░рдо рдореЗрдВ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

1. jQuery рдореЗрдВ рд╕рднреА рдШрдЯрдирд╛ рдбреЗрдЯрд╛ jQuery.cache рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпрджрд┐ рд╣рдо рд╡рд╣рд╛рдВ рджреЗрдЦреЗрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рд░рдгреА рд╣реИ:
рдЫрд╡рд┐
рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрдИрдбреА рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рддреЛ рдЖрдк рдХреИрд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдЖрдИрдбреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ?

2. jQuery рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрдИрдбреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо jQuery рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
рдФрд░ рдЗрд╕реЗ jQuery.expando рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд╕реНрддреБ рдХрд╛ рдЖрдИрдбреА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 elem[ jQuery.expando ] 

3. рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ jQuery.cache рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрдИрдбреА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╣рдорд╛рд░реА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП jQuery рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
 jQuery.cache[ elem[ jQuery.expando ] ] 

рдИрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдКрдкрд░ рдкреНрд░рд╛рдкреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 jQuery.cache[ elem[ jQuery.expando ] ].events 

4. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЙрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 'рдХреАрдбрд╛рдЙрди', рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
 jQuery.cache[ elem[ jQuery.expando ] ].events['keydown'] 

5. рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдПрдХ рд╣реИрдВрдбрд▓рд░ рд╡рд┐рдзрд┐ рд╣реИ - рдпрд╣ рд╣рдорд╛рд░реА рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рд╣реИ:
рдЫрд╡рд┐

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ 'рдХреАрдбрд╛рдЙрди' рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдВ:
 var events = jQuery.cache[ document[ jQuery.expando ] ].events['keydown']; for(var i=0; i<events.length; i++) { console.log( events[i].handler ); } 

рдкрд░рд┐рдгрд╛рдо:
рдЫрд╡рд┐

Source: https://habr.com/ru/post/In200114/


All Articles