
рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдкреГрд╖реНрда рдкрд░ рджреЛ рдмреНрд▓реЙрдХ рд╣реИрдВ, рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреЗрдЬ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<div id="block_outer"> <div id="block_inner"></div> </div>
рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ onClickOuter рдЗрд╡реЗрдВрдЯ #block_outer рдмреНрд▓реЙрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдФрд░ onClickInner рдИрд╡реЗрдВрдЯ рдХреНрд░рдорд╢рдГ, #block_inner рдмреНрд▓реЙрдХ рдореЗрдВред рдФрд░ рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдВ рдХрд┐ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЬрдм рдЖрдк #block_inner рдмреНрд▓реЙрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ onClickOuter рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдФрд░ рдХреНрдпрд╛ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛? рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдФрд░ рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ jQuery.live рдкрджреНрдзрддрд┐ рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХреИрд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреАрдЬреЗрдПрд╕ рдореЗрдВ рдШрдЯрдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓)?
рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕
рд╕рднреНрдпрддрд╛ рдХреЗ рд╕рдордп, рдЬрдм рдбрд╛рдпрдирд╛рд╕реЛрд░ рдЧреНрд░рд╣ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рднрд╛рдЧрддреЗ рдереЗ, рдФрд░ рдкреНрд░рд╛рдЪреАрди рдЖрдИрдЯреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдиреЗ рдкрддреНрдерд░ рдкрд░ рдирдХреНрдХрд╛рд╢реАрджрд╛рд░ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдкреВрд░реЗ рдЬреЛрд░реЛрдВ рдкрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпреБрджреНрдз рд╣реБрдЖ рдерд╛, рд╡реЗрдм рдкреЗрдЬреЛрдВ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдПрдордПрд╕ рдФрд░ рдиреЗрдЯрд╕реНрдХреЗрдк рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдЙрдореНрд░ рдХреЗ рдХрд╛рд░рдг рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛ рдЙрди рджрд┐рдиреЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕)ред рдЬрдм рдкреГрд╖реНрда рдкрд░ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рддрддреНрд╡ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИ), рдПрдордПрд╕ рдиреЗ рдПрдХ рдИрд╡реЗрдВрдЯ рдмрдмрд▓рд┐рдВрдЧ рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛, рдЕрд░реНрдерд╛рдд, рдИрд╡реЗрдВрдЯ рдХрд╛ рдХреНрд░рдо рдбреЛрдо рдЯреНрд░реА рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдиреЗрдЯрд╕реНрдХреЗрдк рдиреЗ рд╡рд┐рдкрд░реАрдд рдореЙрдбрд▓ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрд╛, рдЬрд┐рд╕реЗ рдЗрд╡реЗрдВрдЯ рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╡реЗрдВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛ рдбреЛрдо рдЯреНрд░реА рдХреЗ рдиреАрдЪреЗ рддрддреНрд╡реЛрдВ ("рдЙрдиреНрд╣реЗрдВ" рдкрдХрдбрд╝рдирд╛) рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

W3C рдиреЗ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ -
рдорд╛рдирдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╡рд┐рдзрд┐ рдХреЗ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрда рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
addEventListener(type, listener, useCapture)
рдпрд╣реА рд╣реИ, рдЬрдм рдЖрдк рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ "рдбрд┐рд╕реЗрдВрдЯ" рдЪрд░рдг рдкрд╣рд▓реА рдмрд╛рд░ рд╣реЛрдЧрд╛, рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдШрдЯрдирд╛рдУрдВ = рд╕рддреНрдп рдзреНрд╡рдЬ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ "рдПрд╕реЗрдВрдЯ" рдЪрд░рдг рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЕрдиреНрдп рдШрдЯрдирд╛рдУрдВ рдХреЛ DOM рдЯреНрд░реА рдХреЗ рд╕рд╛рде рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдИрд╡реЗрдВрдЯ рд╣рдореЗрд╢рд╛ рдмрдмрд▓рд┐рдВрдЧ рдЪрд░рдг рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде - рдЧрд▓рдд рдпрд╛ рдЧрд▓рдд:
elementNode.onclick = someMethod;
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдЬ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ?
AddEventListener рд╡рд┐рдзрд┐ рд╕рдВрд╕реНрдХрд░рдг 9 рд╕реЗ рдХрдо IE рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕рдВрд▓рдЧреНрдирдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рддреАрд╕рд░рд╛ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЖрдИрдИ рдореЗрдВ рдШрдЯрдирд╛рдПрдВ рд╣рдореЗрд╢рд╛ "рдЧреБрд░рдЧрд▓" рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдмрд╣реБрдд рд╕реЗ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ 2000 рд╕реЗ рд╡рд┐рдЪрд▓рди рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ addEventListener рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
рдЙрдкрд░реЛрдХреНрдд рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦреЗрдВ рдЬреЛ рдпрд╣ рджрд┐рдЦрд╛рдП рдХрд┐ рдЖрдк рдШрдЯрдирд╛рдУрдВ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЛ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- HTML рд╕рдВрд░рдЪрдирд╛:
<div id="level1"> <div id="level2"> <div id="level3"> </div> </div> </div>
- рд▓рд┐рдкрд┐
var EventsFactory = function(logBox){ this.createEvent = function(text){ return function(e){ logBox.append(text + ' '); } } } var factory = new EventsFactory( $('#test') ); $('#level1').addEvent('click', factory.createEvent(1), true); $('#level1').addEvent('click', factory.createEvent(1), false); $('#level2').addEvent('click', factory.createEvent(2), true); $('#level3').addEvent('click', factory.createEvent(3), false);
- рдбреЗрдореЛ
рдЬрдм рдЖрдк рдмреНрд▓реЙрдХ # рд▓реЗрд╡рд▓ 3 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирдВрдмрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВрдЧреЗ:
рез реи рей рез
рдпрд╣реА рд╣реИ, рдмреНрд▓реЙрдХ # рд▓реЗрд╡рд▓ 1 рдФрд░ # рд▓реЗрд╡рд▓ 2 рдХреЛ рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ # рд▓реЗрд╡рд▓ 3 рдФрд░ # рд▓реЗрд╡рд▓ 1 (рдПрдХ рдмрд╛рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд) рдХреЛ рдмрдмрд▓рд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдЪрд░рдг рдХреЛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреЗрдбрд╝ рдХреЗ рдиреАрдЪреЗ рдПрдХ рд╡рдВрд╢ рдХреЗ рд╕рд╛рде, рдкрд╣рд▓реЗ рдПрдХ # рд╕реНрддрд░ 1 рд╣реИ, рдлрд┐рд░ # рд╕реНрддрд░ 2 рд╣реИ, рдлрд┐рд░ # рд╕реНрддрд░ 3 рддрддреНрд╡ рдХреА рд░реЗрдЦрд╛ рд╕реНрд╡рдпрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдФрд░ рдлрд┐рд░, рдбреЛрдо рдХреЗ рд╕рд╛рде рдКрдкрд░ рдЙрдард╛рдиреЗ рдкрд░, # рд╕реНрддрд░ рддрддреНрд╡ рдХреА рд░реЗрдЦрд╛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╣рдореЗрдВ рджрд┐рдЦрд╛рдПрдЧрд╛:
рей реи рез рез
рдЕрдЧрд▓реА рдШрдЯрдирд╛ рдХреЛ рдХреИрд╕реЗ рд░реЛрдХреЗрдВ?
рдмрд╛рдзреНрдп рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡реЛрдВ рдХреЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ:
function someMethod(e) { if (!e) { window.event.cancelBubble = true; } else if (e.stopPropagation) { e.stopPropagation(); } }
W3C рдореЙрдбрд▓ рдХрд┐рд╕реА рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕реНрдЯреЙрдкрдкреНрд░реЙрдкреИрдЧреИрд╢рди рдореЗрдердб рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Microsoft рдпрд╣рд╛рдВ рднреА рдЕрд▓рдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП IE рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ event.cancelBubble рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдШрдЯрдирд╛ рдХрд╛ рд▓рдХреНрд╖реНрдп
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдШрдЯрдирд╛ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рддрддреНрд╡ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд▓рдХреНрд╖реНрдп рдлрд╝реАрд▓реНрдб рд╣реИ рдЬреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
- HTML рд╕рдВрд░рдЪрдирд╛:
<div id="level1"> <div id="level2"> <div id="level3"> </div> </div> </div>
- рд▓рд┐рдкрд┐
$('#level1').addEvent('click', function(e) {
- рдбреЗрдореЛ
рдореБрдЭреЗ рд╕рдордЭрд╛рдПрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ - # рд▓реЗрд╡рд▓ 1 рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рдХреНрд▓рд┐рдХ рд╕реЗ рд╣рдо рдИрд╡реЗрдВрдЯ рд▓рдХреНрд╖реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╕рд░реНрдЬрдХ рдЖрдВрддрд░рд┐рдХ рдмреНрд▓реЙрдХ # рд▓реЗрд╡рд▓ 3 рд╣реИ, рддреЛ рд╣рдо рдХреБрдЫ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдкрдХреЛ рдХреБрдЫ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ? рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
рдХрд┐ jQuery.live рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рдХреЛрдИ рддрддреНрд╡ рдкреГрд╖реНрда рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрднреА рднреА рдХрд┐рд╕реА рдИрд╡реЗрдВрдЯ рдХреЛ рдЗрд╕рдореЗрдВ рдмрд╛рдБрдз рд╕рдХрддреЗ рд╣реИрдВред рдмреБрджрдмреБрджрд╛рд╣рдЯ рдХреЗ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди, рдХреЛрдИ рднреА рдШрдЯрдирд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдБрдЪ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдкреГрд╖реНрда рдкрд░ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдЕрднрд┐рднрд╛рд╡рдХ рд╣реИ, рдФрд░ рд╣рдо рдИрд╡реЗрдВрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдВ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдпрджрд┐ jQuery.live рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрддрд░ рдкрд░ рдмрдмрд▓рд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ рдмрд╛рдВрдзрддрд╛ рд╣реИ, рддреЛ рдкрд┐рдЫрд▓реА рдШрдЯрдирд╛рдПрдВ рдХреЙрд▓ рдЪреЗрди рдХреЛ рд░реЛрдХ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЕрдВрддрд┐рдо рдИрд╡реЗрдВрдЯ рдХреЗ рдХреЙрд▓ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВ? рд╣рд╛рдВ, рдпрд╣ рдРрд╕рд╛ рд╣реИ, рдпрджрд┐ рдЗрд╕ рдХреЙрд▓ рдЗрд╡реЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ редstopPropagation (), рдХреЙрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
- HTML рд╕рдВрд░рдЪрдирд╛:
<div id="level1"> <div id="level2"> <div id="level3"> </div> </div> </div>
- рд▓рд┐рдкрд┐
$('#level1').live('click', function(e){ $('#test').append('#level1 live triggered'); }); $('#level2').bind('click', function(e){ $('#test').append('this will break live event'); if (e.stopPropagation) { e.stopPropagation(); } });
- рдбреЗрдореЛ
рдЬрдм рдЖрдк рдХреНрд╖реЗрддреНрд░ # рд╕реНрддрд░ 3 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ "рдпрд╣ рд▓рд╛рдЗрд╡ рдЗрд╡реЗрдВрдЯ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рдд рд▓рд╛рдЗрд╡ рдЗрд╡реЗрдВрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╣реИрдХ рд╕рдВрднрд╡ рд╣реИ, рдпрд╣ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рдПрдХ рдХрдард┐рди (рдирд╛рд░рдХреАрдп рд░реВрдк рд╕реЗ рдХрдард┐рди) рдмреЛрдзрдЧрдореНрдп рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИред
рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЪрд░ "e" рдПрдХ jQuery.Event рдЙрджрд╛рд╣рд░рдг рд╣реИред IE рдХреЗ рд▓рд┐рдП, рдПрдХ рдШрдЯрдирд╛ рдореЗрдВ рдПрдХ рд╕реНрдЯреЙрдкрдкреНрд░реЛрдкреИрдЬреЗрд╢рди рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ IE рдореЗрдВ рдмреБрджрдмреБрджрд╛рд╣рдЯ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд▓реИрдЧ рдИрд╡реЗрдВрдЯ.cancelBubble = true рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди jQuery рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдЬреЗрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ?
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдХреЗрд╡рд▓ jQuery, MooTools, Dojo рдФрд░ ExtJS рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрдЦ рдФрд░ рд▓реЗрдЦрдХ рдХрд╛ рдЬреНрдЮрд╛рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд░рдмрдбрд╝ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЛ рднрд╛рд╖рд╛ рдФрд░ рд░реВрдкрд░реЗрдЦрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред
- jQuery
рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЗрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреЛ рд╣рдореЗрд╢рд╛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмреБрджрдмреБрджрд╛рддреА рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдмрд╛рдВрдзрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, "preventBubble", рдЬреЛ рдЗрд╕ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реИрдкрд░ рднреА рд╣реИрдВ , рдЬреИрд╕реЗ рдХрд┐ рдХреНрд▓рд┐рдХ , рдкрд░рд┐рд╡рд░реНрддрди рдЖрджрд┐, рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ: рдкреНрд░рддрд┐рдирд┐рдзрд┐ , рд▓рд╛рдЗрд╡ ред - MooTools
addEvent рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ, рдЬреЛ рдХрд╕реНрдЯрдо рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред AddEvent рдЖрдкрдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЪрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЖрдк рдЫрджреНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдШрдЯрдирд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ : рд░рд┐рд▓реЗ ред - рдбреЛрдЬреЛ
рдХрдиреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ "NOTFix" рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдкрд░ рдШрдЯрдирд╛рдУрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИ) рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ ред рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред - ExtJS
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдкрд░ рд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЗрд░реА, stopPropagation, рдкреНрд░рддрд┐рдирд┐рдзрд┐, рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реНрдХред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдордЭреМрддрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реБрдП, рдмреБрджрдмреБрджрд╛рддреА рд╣реБрдИ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рдордЭрдиреЗ рд╕реЗ рдХрд┐ рдпрд╣ рдЕрдВрджрд░ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХрднреА рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрд╛рдПрдЧрд╛ :)
рд╕рд╛рдордЧреНрд░реА