рдЬрдЯрд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд░рд▓ рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдореИрдВ рдЬрдЯрд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдиреНрдпреВрдирддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреЗрд╡рд▓ jQuery рдФрд░ рдореЗрд░реЗ js рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреЗрд╡рд▓ $.ready() , $.proxy() рдФрд░ $.proxy() рдХрд╛ рдЙрдкрдпреЛрдЧ jQuery рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рддред рдмрд┐рдВрджреБ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рд╣реИ), рд▓реЗрдХрд┐рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рд╣реАред

рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреЛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:
  1. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдЬреЗрдЯреНрд╕ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдм рдкреЗрдЬ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рднрд╛рдЧ "рдорд╛рд▓рд┐рдХ" рд╣реЛрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдкреЗрдЬ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рд╕рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ DOM рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрд╢реЛрдзрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ - рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди )ред рд╡рд┐рдЬреЗрдЯ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ; рдЗрд╕рд▓рд┐рдП, DOM рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрд╢реЛрдзрди рдЬреЛ рд╡рд┐рдЬреЗрдЯ "рдорд╛рд▓рд┐рдХ" рд╡рд┐рдЬреЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ - рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП (рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдЖрд╡реЗрджрди рдХреА рд╕рдордЧреНрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рд╕реАрдПрд╕рдПрд╕ рдпрд╛ ____ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдмреБрдирд┐рдпрд╛рджреА рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ)ред
  2. рд╡реИрд╢реНрд╡рд┐рдХ рдШрдЯрдирд╛ рдкреНрд░реЗрд╖рдгред рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреА рдмрд╛рддрдЪреАрдд рдХреЛ рдЧреНрд▓реЛрдмрд▓ рдбрд┐рд╕реНрдкреИрдЪрд░ ( рдХрдордЬреЛрд░ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА , рдордзреНрдпрд╕реНрде / рдордзреНрдпрд╕реНрде рдкреИрдЯрд░реНрди) рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ - рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдБ / рд╣рдЯрд╛рдПрдВ, рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪреЗрдВ, рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдЖрджрд┐ред рдШрдЯрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╡рд┐рдкрд░реАрдд (рдЬрдм рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЬреЛрдбрд╝рд╛ / рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд╕реНрдереИрддрд┐рдХ рдкреНрд░реЗрд╖рдгрдХрд░реНрддрд╛ рдХреЛрдб рдХреА рд╕рдордЭ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдерд┐рд░ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд░реНрд╡рд░ рдкрдХреНрд╖ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реА рд╣реИ), рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдореЗрд░рд╛ рдореБрдЦреНрдп рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рдореБрдЭреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдПрдХ рдХрд╛рдлреА рдкрд░рд┐рд╖реНрдХреГрдд рдПрдХ-рдкреГрд╖реНрда рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рд▓рдЧрднрдЧ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ) рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдорд┐рд▓рд╛, рддреЛ рдореИрдВрдиреЗ рдРрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреА, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЖрдзрд╛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣реА рдмреАрдд рдЪреБрдХрд╛ рд╣реИ рдирд┐рдХреЛрд▓рд╕ рдЬрд╝рдХрд╕ "рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░": рд╡реАрдбрд┐рдпреЛ , рд╕реНрд▓рд╛рдЗрдбреНрд╕ )ред

рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЗрди рджреЛ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди рдЙрд╕ рд╕рдордп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА, рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред :) рдЗрд╕реАрд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдЦрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рджреЗрдЦрд╛, рдФрд░ рдирд┐рдХреЛрд▓рд╕ рдЬрд╝рдХрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдорд┐рд▓реА, рд╕рд╛рде рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрдврд╝рдиреЗ рд╕реЗ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд╛рд░реНрдЬ-рд╕реНрдХреЗрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП Addy Osmani Patterns рд▓реЗрдЦ рдкрд╕рдВрдж рдЖрдпрд╛ред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдЕрдВрддрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛:

рд▓реЗрдХрд┐рди, рдмрдбрд╝реЗ рдФрд░ рддрдм рддрдХ, рдореИрдВрдиреЗ рдЙрд╕реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред

рд╢реБрд░реБрдЖрдд


рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреЗрдЬ рдХрд╛ рдХрдВрдХрд╛рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

index.html
 <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>    JavaScript </title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script type="text/javascript" src="http://powerman.name/download/js/POWER.js"></script> <!--     --> </head> <body> <script type="text/javascript"> /*    */ </script> <!--   html-   js- --> </body> </html> 


рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдИрд╡реЗрдВрдЯ рдбрд┐рд╕реНрдкреИрдЪрд░ рдЬреЛрдбрд╝реЗрдВред рдИрд╡реЗрдВрдЯ рдЗрд╡реЗрдВрдЯ рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдирд╛рдо рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрд╢ рд╣реИред

рдЖрдорддреМрд░ рдкрд░, рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдкреГрд╖реНрда рдкрд░ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЬреЛрдбрд╝реЗрдВ), рдФрд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдШрдЯрдирд╛ рдХреЛ рдореБрдЦреНрдп рдбрд┐рд╕реНрдкреИрдЪрд░ рдореЗрдВ рднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗред

index.html
 /*    */ notice = (function(){ var w = { }; return function(e,data){ switch (e) { case 'document ready': break; default: alert('notice: unknown event "'+e+'"'); } }; })(); $(document).ready(function(){ notice('document ready') }); 


рд╣реИрд╢ w рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрдорд┐рдд рд╡рд┐рдЬреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдХрд╣реАрдВ рдФрд░ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреНрд▓рд╕ рддрд╛рдХрд┐ рдбрд┐рд╕реНрдкреИрдЪрд░ (рдЬреЛ рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдмрдирд╛рдПрдВрдЧреЗ) рдХреА рд╣рдореЗрд╢рд╛ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛред

рд╣рдо рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?


рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рднрд╛рдЧ рддреИрдпрд╛рд░ рд╣реИ, рдпрд╣ рддрдп рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛ред рдкреГрд╖реНрда рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдмреАрдЪ рдЬрдЯрд┐рд▓ рдЧрддрд┐рд╢реАрд▓ рдмрд╛рддрдЪреАрдд рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдИ рд╕рдХреНрд░рд┐рдп рддрддреНрд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рдирдХреА рдХреНрд░рд┐рдпрд╛ рдкреГрд╖реНрда рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдЧреАред

рдЖрдЗрдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЛ рдЬреЛрдбрд╝ / рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЗрди рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рдПрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдиреА рдкрд░реАрдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛)ред рдкреНрд▓рд╕ рд╕рднреА рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ред

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


рд╣рдо рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдЬреЗрдЯ рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рдФрд░ рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡реЗрджрди рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдкрд░ рдЖрд╢реНрдЪрд░реНрдп рди рдХрд░реЗрдВ - рдпрд╣ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгред

рд╡рд┐рдЬреЗрдЯ


рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЕрдкрдирд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдкреГрд╖реНрда рдкрд░ рдХрд╣рд╛рдБ рд╣реИ - рдЕрд░реНрдерд╛рдд рд╡рд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдбреЛрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдмрд╛рд╣рд░реА рдХреЛрдб рдкреГрд╖реНрда рдкрд░ рд╡рд┐рдЬреЗрдЯ-рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ / рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ (рдпрд╛рдиреА, рд╣рдорд╛рд░реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдИрд╡реЗрдВрдЯ рдбрд┐рд╕реНрдкреИрдЪрд░, рдпрд╛ рдмрд╛рд╣рд░реА рд╡рд┐рдЬреЗрдЯ рдЬрдм рдХреБрдЫ рд╡рд┐рдЬреЗрдЯ рджреВрд╕рд░реЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реЛрддреЗ рд╣реИрдВ)ред

рд╡рд┐рдЬреЗрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрджрд░, рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рдиреНрдпреВрдирддрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ:

рджреБрд░реНрд▓рдн рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде, рд╡рд┐рдЬреЗрдЯ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреГрд╖реНрда рдХрд╛ рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рдЬрд┐рд╕рдХрд╛ рд╡рд╣ "рдорд╛рд▓рд┐рдХ" рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдпрд╛ рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ (рдФрд░ рдлрд┐рд░ рдЙрд╕рдХрд╛ #id рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╛ рдЬреЗрдПрд╕-рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдордХреНрдЦреА рдкрд░ рд╡рд┐рдЬреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдлрд┐рд░ рдкреИрдЯрд░реНрди рдХреЗ #id рдХреЛ #id рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдмрд╛рдХреА рд╕рдм рдореМрд▓рд┐рдХ рдирд╣реАрдВ рд╣реИред рдореЗрд░реА рд╢реИрд▓реА:

рдереЛрдбрд╝рд╛ рдкрд╛рд░рд┐рднрд╛рд╖рд┐рдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгред рдЕрдХреНрд╕рд░, рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдЬреЗрдЯ HTML + рд╕реАрдПрд╕рдПрд╕ + рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЛ HTML рдФрд░ CSS рдХреЗ рдЙрдирдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд┐рдЬреЗрдЯ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдбрд┐рдЬрд╛рдЗрди рдХреА рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ - рдпрд╣ рдХреЛрдб рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рджреЛрдиреЛрдВ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред

AddPhrase

рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП HTML рд╡рд┐рдЬреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ - рдЖрдкрдХреЛ рдПрдХ рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдлреЙрд░реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

w.addphrase.js
 /* * <form id="addphrase"><input type=text></form> * * w = new W.AddPhrase('addphrase'); * * -> 'add phrase', phrase * */ var W; W = W || {}; W.AddPhrase = function(id){ this.$ = $( '#'+id ); this._input = this.$.find('input'); // cache this.$.submit( $.proxy(this,'_onsubmit') ); }; W.AddPhrase.prototype._onsubmit = function(){ notice('add phrase', { phrase: this._input.val() }); this._input.val(''); return false; }; 


рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдЬреЗрдЯ рдирд┐рд░реНрдорд╛рдг рдЬреЛрдбрд╝реЗрдВред рдФрд░ рдкреНрд░рдпреЛрдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдХреЛрдб - рдРрд╕рд╛ рдХреЛрдб рдпрд╣рд╛рдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡рд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдореБрдЦреНрдп рддрддреНрд╡ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

index.html
  <!--     --> <script type="text/javascript" src="w.addphrase.js"></script> ... <!--   html-   js- --> <form id="addphrase">  : <input type=text> </form> 


index.html
 /*    */ notice = (function(){ var w = { addphrase: null }; return function(e,data){ switch (e) { case 'document ready': w.addphrase = new W.AddPhrase('addphrase'); $('#addphrase input').focus(); break; case 'add phrase': break; 


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм рд╣реИ :) рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡рд┐рдЬреЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рд░реВрдк рдореЗрдВ "рд╣рдВрдЧ" рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ (рд╣рдо рдЕрднреА рднреА рдбрд┐рд╕реНрдкреИрдЪрд░ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рднреА рдХреЛрдИ рд╡рд┐рдЬреЗрдЯ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЗрд╕реА рд╕рдордп, рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╡рд╕рд╛ рдХреА рдПрдХ рднреА рдмреВрдВрдж рдирд╣реАрдВ рд╣реИ - рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛ рдЗрд╕рдХреА рддрддреНрдХрд╛рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдпрд╢реАрд▓рддрд╛ рдХреЛ рдЬрд┐рд╕ рднреА рд╢реИрд▓реА рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпреЗ рд╕рднреА рд░реЗрдЦрд╛рдПрдБ рд╡реИрд╕реЗ рднреА рд╣реЛрдВрдЧреАред рдбрд┐рд╕реНрдкреИрдЪрд░ рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, "рдЕрддрд┐рд░рд┐рдХреНрдд" рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ - рдЬрдм рдПрди-рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреА рд╢реИрд▓реА рдореЗрдВ рдПрдХ рдЧреИрд░-рдореЙрдбреНрдпреВрд▓рд░ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрдм рд╕рднреА рдХреЛрдб рдПрдХ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдереЗред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ "рдЕрддрд┐рд░рд┐рдХреНрдд" рд▓рд╛рдЗрдиреЗрдВ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕рдмрд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реЗ рд╣реИрдВ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдФрд░ рдХреЗрд╡рд▓ рдЖрд╡реЗрджрди рдХреЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рддрд░реНрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред

рдореБрд╣рд╛рд╡рд░рд╛

рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо js рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рдиреЗрд╕реНрдЯреЗрдб рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

HTML рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ - рдЖрдкрдХреЛ рдПрдХ рдЬреЗрдПрд╕-рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ phrase рд╡реИрд░рд┐рдПрдмрд▓ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рд╕ handlers рд╕рд╛рде рдПрдХ рддрддреНрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреЗрдЯ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред

w.phrase.js
 /* * <script type="text/x-tmpl" id="tmpl_phrase"> * <div> * <%= phrase %> * <span class="handlers"></span> * </div> * </script> * * w = new W.Phrase('tmpl_phrase', 'some phrase'); * w.add_handler( new W.SomeHandler() ); * * -> 'select phrase', phrase * */ var W; W = W || {}; W.Phrase = function(tmpl, phrase){ this.$ = $( POWER.render(tmpl, { 'phrase': phrase }) ); this._phrase= phrase; this._w = []; this._h = this.$.find('.handlers'); // cache this.$.click( $.proxy(this,'_onclick') ); }; W.Phrase.prototype.add_handler = function(w_handler){ this._w.push( w_handler ); this._h.append( w_handler.$ ); }; W.Phrase.prototype._onclick = function(){ notice('select phrase', { phrase: this._phrase }); }; 


рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд▓реЗрдХрд┐рди рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рд╡рд┐рдЬреЗрдЯ "рдиреЗрддреНрд░рд╣реАрди" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯ рдФрд░ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╕рдиреНрдирд┐рд╣рд┐рдд рд╣реИ "рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рд╡рд┐рдЬреЗрдЯ" рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ (рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд▓рд┐рдВрдХ рдЗрд╕ this._w , рдЬрдмрдХрд┐ рд╕рднреА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдЧреЗрдЯреНрд╕ w рд╣реИрд╢ рдореЗрдВ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ), рдлрд┐рд░ рднреАред , рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдПрдХ рд╡рд░реНрддрдиреА рдЪреЗрдХ рд╡рд┐рдЬреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд▓рдЪреАрд▓рд╛рдкрди рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди - рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдкреИрдЪрд░ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдЬреЗрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрди рдХреЗ рдкрд╛рд░рджрд░реНрд╢реА рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╕реЗ рдмрдЪрддрд╛ рд╣реИ рдмрд╛рд╣рд░реА рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ред

index.html
  <!--     --> ... <script type="text/javascript" src="w.phrase.js"></script> ... <!--   html-   js- --> ... <div id="phrases"> <p> <script type="text/x-tmpl" id="tmpl_phrase"> <div> <%= phrase %> <span class="handlers"></span> </div> </script> </div> 


index.html
 /*    */ notice = (function(){ var w = { ... phrase: {} }; return function(e,data){ ... case 'add phrase': if(data.phrase in w.phrase) break; w.phrase[data.phrase] = new W.Phrase('tmpl_phrase', data.phrase); $('#phrases').append( w.phrase[data.phrase].$ ); break; case 'select phrase': w.phrase[data.phrase].$.remove(); delete w.phrase[data.phrase]; $('#addphrase input').focus(); break; 


рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдПрдХ рдЬреЛрдбрд╝реА: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА W.SpellCheck рд╡рд┐рдЬреЗрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо w.phrase[phrase].add_handler( new W.SpellCheck() ) рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ; рджреВрд╕рд░реА рдмрд╛рдд, рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯ (рдХрд┐рд╕реА рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЗрдирдкреБрдЯ рд▓рд╛рдЗрди рдлреЛрдХрд╕ рдЦреЛ рджреЗрддреА рд╣реИ рдФрд░ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦреЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреА рд╕реНрдерд┐рддрд┐ (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ) рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ: рдЖрдк рдбреЛрдо рдХреЛ рдбрд┐рд╕реНрдкреИрдЪрд░ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рдШрдЯрдирд╛рдУрдВ рдХреЛ 'spellcheck: started' рдФрд░ 'spellcheck: success' ), рдпрд╛ рдЖрдк рдЬреЗрдПрд╕-рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдлреНрд▓реИрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХрдИ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд / рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдпрд╣ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ .$ рд╕рдВрдкрддреНрддрд┐ (рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ) рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЕрдм рдЗрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ - рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ .$ рдореВрд▓реНрдп рдХреЛ рдбреЛрдо рдореЗрдВ рдХрд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ (рд╣рдо рд╡рд┐рдЬреЗрдЯ рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ) рд╣рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ рд╣реИ), рдФрд░ рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ .$ рдирдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде, рдкреБрд░рд╛рдиреЗ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ .$ DOM рдореЗрдВ рд░рд╣реЗрдЧрд╛ рдФрд░ рдкреГрд╖реНрда рдкрд░ рдХреБрдЫ рднреА рдиреЗрддреНрд░рд╣реАрди рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ (рдФрд░ рдпрд╣ рд╡рд┐рдЬреЗрдЯ рдЕрдВрддрддрдГ "рдкреГрд╖реНрда рдХреЗ рдЙрд╕рдХреЗ рд╣рд┐рд╕реНрд╕реЗ" рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛ рджреЗрдЧрд╛)ред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдЦрд╛рд▓реА рдЯреИрдЧ рдХрдВрдЯреЗрдирд░ (рдЙрджрд╛ред рд╕реНрдкреИрди рдпрд╛ рдбрд┐рд╡) рдХреЛ .$ рдореЗрдВ рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рдкрд░ рдПрдХ "рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд" рдЯреИрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЖрдпрд╛ рд╣реВрдВред

HTML рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ - рдЖрдкрдХреЛ рдПрдХ js- рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ status рд╡реИрд░рд┐рдПрдмрд▓ ( "started" рдФрд░ "success" рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рди) рдФрд░ spellerrors (рдпрджрд┐ рдорд╛рди status=="success" ) рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

w.spellcheck.js
 /* * <script type="text/x-tmpl" id="tmpl_spellcheck"> * <% if (status == 'started') { %> * тАж * <% } else { %> *  <%= spellerrors %> . * <% } %> * </script> * * w = new W.SpellCheck('tmpl_spellcheck', 'some phrase'); * * -> 'spellcheck: started', phrase * -> 'spellcheck: success', phrase, spellerrors * */ var W; W = W || {}; W.SpellCheck = function(tmpl, phrase){ this.$ = $('<span>'); this._tmpl = tmpl; this._phrase= phrase; this._load(); }; W.SpellCheck.prototype._load = function(){ $.ajax({ url: 'http://speller.yandex.net/services/spellservice.json/checkText', data: { text: this._phrase }, dataType: 'jsonp', success: $.proxy(this,'_load_success') }); this.$.html( POWER.render(this._tmpl, { status: 'started' }) ); notice('spellcheck: started', { phrase: this._phrase }); } W.SpellCheck.prototype._load_success = function(data){ this.$.html( POWER.render(this._tmpl, { status: 'success', spellerrors: data.length }) ); notice('spellcheck: success', { phrase: this._phrase, spellerrors: data.length }); }; 


index.html
  <!--     --> ... <script type="text/javascript" src="w.spellcheck.js"></script> ... <!--   html-   js- --> ... <div id="phrases"> ... <script type="text/x-tmpl" id="tmpl_spellcheck"> <% if (status == 'started') { %> (тАж) <% } else { %> ( <%= spellerrors %> ) <% } %> </script> </div> 


index.html
  case 'add phrase': ... w.phrase[data.phrase].add_handler(new W.SpellCheck('tmpl_spellcheck', data.phrase)); ... break; case 'spellcheck: started': break; case 'spellcheck: success': break; 


рдпреЛрдЧ


w.sum.js
 /* * <span id="sum"></span> * * w = new W.Sum('sum'); * w.add(5); * w.sub(3); * */ var W; W = W || {}; W.Sum = function(id){ this.$ = $( '#'+id ); this.$.html(0); }; W.Sum.prototype.add = function(n){ this.$.html( parseInt(this.$.html()) + n ); }; W.Sum.prototype.sub = function(n){ this.$.html( parseInt(this.$.html()) - n ); }; 


index.html
  <!--     --> ... <script type="text/javascript" src="w.sum.js"></script> ... <!--   html-   js- --> ... <p><b>: <span id="sum"></span> .</b></p> 


index.html
 /*    */ notice = (function(){ var w = { ... sum: null }; var spellerrors = {}; return function(e,data){ ... case 'document ready': ... w.sum = new W.Sum('sum'); break; case 'select phrase': ... if(data.phrase in spellerrors){ w.sum.sub(spellerrors[data.phrase]); delete spellerrors[data.phrase]; } break; case 'spellcheck: success': w.sum.add(data.spellerrors); spellerrors[data.phrase] = data.spellerrors; break; 


рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░


рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрд▓: 200 рд▓рд╛рдЗрдиреЗрдВ HTML + рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, 5.5KBред рдЗрдирдореЗрдВ рд╕реЗ, рд▓рдЧрднрдЧ 50 рд▓рд╛рдЗрдиреЗрдВ рдкреНрд░рд▓реЗрдЦрди / рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВред

рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ, рдкрд░реАрдХреНрд╖рдг, рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рдореБрджреНрджреЗ рдереЗред рдпрд╣рд╛рдБ рдореИрдВ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛, рд╕рдм рдХреБрдЫ рдорд╛рдирдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдХреЛрд▓рд╕ рдЬрд╝рдХрд╕ рд░рд┐рдкреЛрд░реНрдЯ "рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ": рд╕реНрд▓рд╛рдЗрдбреНрд╕ рджреЗрдЦреЗрдВ )ред

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА


рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдмрд┐рдЯрдмрдХреИрдЯ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдЦ рдХреЗ рдЕрдиреБрд░реВрдк рдЪрд░рдг-рджрд░-рдЪрд░рдг рдХрдорд┐рдЯ-рдПрд╕ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдЖрд╡реЗрджрди рдХреЛ рд╕реНрд╡рдпрдВ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЬреЛ рд▓реЛрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рдкрд╣рд▓реЗ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдкрд░ рдореЗрд░реА рд░рд╛рдп рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдмрд╛рд░ рдореЗрд░реЗ js рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдЪрд░реНрдЪрд╛ рд╣реБрдИ рдереАред

рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдиреНрдп рд▓реЗрдЦ: рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ ред

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


All Articles