рдореИрдВ рдЬрдЯрд┐рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдиреНрдпреВрдирддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХреЗрд╡рд▓ jQuery рдФрд░ рдореЗрд░реЗ js рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдХреЗрд╡рд▓
$.ready()
,
$.proxy()
рдФрд░
$.proxy()
рдХрд╛ рдЙрдкрдпреЛрдЧ jQuery рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрд░реНрдерд╛рддред рдмрд┐рдВрджреБ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рд╣реИ), рд▓реЗрдХрд┐рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рд╣реАред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреЛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдЬреЗрдЯреНрд╕ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрдм рдкреЗрдЬ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рднрд╛рдЧ "рдорд╛рд▓рд┐рдХ" рд╣реЛрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдкреЗрдЬ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рд╕рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ DOM рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрд╢реЛрдзрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ - рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди )ред рд╡рд┐рдЬреЗрдЯ рдХреЗрд╡рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ; рдЗрд╕рд▓рд┐рдП, DOM рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрд╢реЛрдзрди рдЬреЛ рд╡рд┐рдЬреЗрдЯ "рдорд╛рд▓рд┐рдХ" рд╡рд┐рдЬреЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ - рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП (рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдЖрд╡реЗрджрди рдХреА рд╕рдордЧреНрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рд╕реАрдПрд╕рдПрд╕ рдпрд╛ ____ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдмреБрдирд┐рдпрд╛рджреА рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ)ред
- рд╡реИрд╢реНрд╡рд┐рдХ рдШрдЯрдирд╛ рдкреНрд░реЗрд╖рдгред рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХреА рдмрд╛рддрдЪреАрдд рдХреЛ рдЧреНрд▓реЛрдмрд▓ рдбрд┐рд╕реНрдкреИрдЪрд░ ( рдХрдордЬреЛрд░ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА , рдордзреНрдпрд╕реНрде / рдордзреНрдпрд╕реНрде рдкреИрдЯрд░реНрди) рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ - рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдПрдБ / рд╣рдЯрд╛рдПрдВ, рдЕрдиреНрдп рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪреЗрдВ, рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдЖрджрд┐ред рдШрдЯрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╡рд┐рдкрд░реАрдд (рдЬрдм рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЬреЛрдбрд╝рд╛ / рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд╕реНрдереИрддрд┐рдХ рдкреНрд░реЗрд╖рдгрдХрд░реНрддрд╛ рдХреЛрдб рдХреА рд╕рдордЭ рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдерд┐рд░ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╛рдЗрдХрд┐рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд░реНрд╡рд░ рдкрдХреНрд╖ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реА рд╣реИ), рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдореЗрд░рд╛ рдореБрдЦреНрдп рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рдореБрдЭреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдПрдХ рдХрд╛рдлреА рдкрд░рд┐рд╖реНрдХреГрдд рдПрдХ-рдкреГрд╖реНрда рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рд▓рдЧрднрдЧ рджреЛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ) рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдорд┐рд▓рд╛, рддреЛ рдореИрдВрдиреЗ рдРрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреА, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЖрдзрд╛ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╣реА рдмреАрдд рдЪреБрдХрд╛ рд╣реИ рдирд┐рдХреЛрд▓рд╕ рдЬрд╝рдХрд╕ "рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░":
рд╡реАрдбрд┐рдпреЛ ,
рд╕реНрд▓рд╛рдЗрдбреНрд╕ )ред
рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЗрди рджреЛ рд╡рд░реНрд╖реЛрдВ рдХреЗ рджреМрд░рд╛рди рдЙрд╕ рд╕рдордп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА, рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред :) рдЗрд╕реАрд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдЦрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рджреЗрдЦрд╛, рдФрд░ рдирд┐рдХреЛрд▓рд╕ рдЬрд╝рдХрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдорд┐рд▓реА, рд╕рд╛рде рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдкрдврд╝рдиреЗ рд╕реЗ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
рд▓рд╛рд░реНрдЬ-рд╕реНрдХреЗрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП Addy Osmani
Patterns рд▓реЗрдЦ рдкрд╕рдВрдж рдЖрдпрд╛ред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдЕрдВрддрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛:
- рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рдпрд╛рд╣реВ, рдЬреАрдореЗрд▓, рдЖрджрд┐ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдзреБрдирд┐рдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рдПрдХ рдореВрд▓реНрдп рдкрд░ рдЖрддрд╛ рд╣реИ - рдпрд╣ рдЖрд╡реЗрджрди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЭреЗ рдХрднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА:
- рдмрд╕ рдмреЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдбреЛрдЬреЛ рдХреЗ рд╕рд╛рде jQuery) рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛
- рд╕рд┐рд╕реНрдЯрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреЗ "рдПрдХреНрд╕реЗрд╕ рд░рд╛рдЗрдЯреНрд╕" рдХреА рдЬрд╛рдВрдЪ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг
- рдкреГрд╖реНрда рдкрд░ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝реЗрдВ / рдирд┐рдХрд╛рд▓реЗрдВ
- рдЧрддрд┐рд╢реАрд▓ рдШрдЯрдирд╛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдореЗрдВ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛
- рдпрд╣ рдХрд╣реАрдВ рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЙрдирдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ "рдореЙрдбреНрдпреВрд▓" рд▓рдЧрднрдЧ рдкреВрд░реЗ рдмрдбрд╝реЗ рдФрд░ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ (рдЬреИрд╕реЗ рдпрд╛рд╣реВ рдкрд░ рдЬреАрдореЗрд▓ рдкреЗрдЬ рдпрд╛ рдореМрд╕рдо рд╡рд┐рдЬреЗрдЯ рдкрд░ рдЪреИрдЯ)ред рдореЗрд░рд╛ "рдореЙрдбреНрдпреВрд▓" рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдЕрд▓рдЧ-рдерд▓рдЧ рдЗрдХрд╛рдИ рдореЗрдВ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдВрдбреНрд░рдпреВ рдмрд░реНрдЧреЗрд╕ рд╕реНрдХреНрд░реИрдВрдХрд╛рд╕реНрдЯ "рд░рд╛рдЗрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдореЗрд░реЗ рдЬреИрд╕реЗ рд╣реА рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред) рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдЙрд╕реА рдЯреИрдЧ рдХреЗ рдЕрдВрджрд░ рд╕рдорд╛рди рдореВрд▓реНрдп рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдпреЗ рдореЙрдбреНрдпреВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ jQuery рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд, рд╕реБрдВрджрд░ рдФрд░ рдлреИрдВрд╕реА <select> рдХреЛ рд╕рд╛рдзрд╛рд░рдг <select> рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реИрдВред
- рдореЙрдбреНрдпреВрд▓ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдкреИрдорд╛рдиреЗ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдирдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ HTML + CSS + рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд░реНрдл рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ, рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо HTML рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрдиред
- рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣рдордд рд╣реВрдБ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреА рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреНрдпрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдореБрдЭреЗ рдмрд╕ рдЙрд╕ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдкреНрд░реЗрд╖рдг рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп, рдкреНрд░рднрд╛рд╡реА рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рд╡рд╣ рд╣реИ рдЬреЛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдб рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдореНрдореЗрд▓рдиреЛрдВ, рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реВрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдЙрдкрд╛рдп рднреА рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛)ред рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ, рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХреНрд╕реЗрд╕ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореЙрдбреНрдпреВрд▓ рдЪрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╣рд╛рдВ рдирд╣реАрдВред
рд▓реЗрдХрд┐рди, рдмрдбрд╝реЗ рдФрд░ рддрдм рддрдХ, рдореИрдВрдиреЗ рдЙрд╕реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ред
рд╢реБрд░реБрдЖрдд
рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреЗрдЬ рдХрд╛ рдХрдВрдХрд╛рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред
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> </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
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд░реНрдорд┐рдд рд╡рд┐рдЬреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдХрд╣реАрдВ рдФрд░ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдкреНрд▓рд╕ рддрд╛рдХрд┐ рдбрд┐рд╕реНрдкреИрдЪрд░ (рдЬреЛ рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдмрдирд╛рдПрдВрдЧреЗ) рдХреА рд╣рдореЗрд╢рд╛ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛред
рд╣рдо рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рднрд╛рдЧ рддреИрдпрд╛рд░ рд╣реИ, рдпрд╣ рддрдп рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЖрд╡реЗрджрди рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛ред рдкреГрд╖реНрда рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдмреАрдЪ рдЬрдЯрд┐рд▓ рдЧрддрд┐рд╢реАрд▓ рдмрд╛рддрдЪреАрдд рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдИ рд╕рдХреНрд░рд┐рдп рддрддреНрд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рдирдХреА рдХреНрд░рд┐рдпрд╛ рдкреГрд╖реНрда рдХреЗ рд╡рд┐рднрд┐рдиреНрди рднрд╛рдЧреЛрдВ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдЧреАред
рдЖрдЗрдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЛ рдЬреЛрдбрд╝ / рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЗрди рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рдПрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдиреА рдкрд░реАрдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛)ред рдкреНрд▓рд╕ рд╕рднреА рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ред
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░
рд╣рдо рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдЬреЗрдЯ рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рдФрд░ рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡реЗрджрди рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдкрд░ рдЖрд╢реНрдЪрд░реНрдп рди рдХрд░реЗрдВ - рдпрд╣ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгред
- AddPhrase - рдПрдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреЗрдЯред
- рддрд░реАрдХреЗ: рдХреЛрдИ рдирд╣реАрдВред
- рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
'add phrase'
ред
- рд╡рд╛рдХреНрдпрд╛рдВрд╢ - рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЬреЛ рдЬреЛрдбрд╝реЗ рдЧрдП рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЗрд╕реЗ (рд╡рд┐рд▓реЛрдкрди рдХреЗ рд▓рд┐рдП) рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╣реИрдВрдбрд▓рд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рд╡рд░реНрддрдиреА рдЬрд╛рдВрдЪ)ред
- рддрд░реАрдХреЗ:
add_handler
- рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
'select phrase'
ред
- рд╕реНрдкреЗрд▓рдЪреЗрдХ - рд╡рд┐рдЬреЗрдЯ рдЬреЛ рдЗрд╕ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
- рддрд░реАрдХреЗ: рдХреЛрдИ рдирд╣реАрдВред
- рдШрдЯрдирд╛рдУрдВ рдХреЛ
'spellcheck: started'
рдФрд░ 'spellcheck: success'
'spellcheck: started'
ред
- рд╕рдо - рд╡рд┐рдЬреЗрдЯ рдЬреЛ рд╕рднреА рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
- рддрд░реАрдХреЗ:
add
рдФрд░ sub
ред - рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ: рдирд╣реАрдВред
рд╡рд┐рдЬреЗрдЯ
рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЕрдкрдирд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдкреГрд╖реНрда рдкрд░ рдХрд╣рд╛рдБ рд╣реИ - рдЕрд░реНрдерд╛рдд рд╡рд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдбреЛрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдмрд╛рд╣рд░реА рдХреЛрдб рдкреГрд╖реНрда рдкрд░ рд╡рд┐рдЬреЗрдЯ-рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ / рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ (рдпрд╛рдиреА, рд╣рдорд╛рд░реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдИрд╡реЗрдВрдЯ рдбрд┐рд╕реНрдкреИрдЪрд░, рдпрд╛ рдмрд╛рд╣рд░реА рд╡рд┐рдЬреЗрдЯ рдЬрдм рдХреБрдЫ рд╡рд┐рдЬреЗрдЯ рджреВрд╕рд░реЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реЛрддреЗ рд╣реИрдВ)ред
рд╡рд┐рдЬреЗрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрдВрджрд░, рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рдиреНрдпреВрдирддрдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ:
- рдШрдЯрдирд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдорд╛рд░реЛрд╣
notice()
; - jQuery
$
рд╡рд╕реНрддреБ; - рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпред
рджреБрд░реНрд▓рдн рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде, рд╡рд┐рдЬреЗрдЯ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреГрд╖реНрда рдХрд╛ рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рдЬрд┐рд╕рдХрд╛ рд╡рд╣ "рдорд╛рд▓рд┐рдХ" рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рдпрд╛ рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ (рдФрд░ рдлрд┐рд░ рдЙрд╕рдХрд╛
#id
рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╛ рдЬреЗрдПрд╕-рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдордХреНрдЦреА рдкрд░ рд╡рд┐рдЬреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдлрд┐рд░ рдкреИрдЯрд░реНрди рдХреЗ
#id
рдХреЛ
#id
рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдмрд╛рдХреА рд╕рдм рдореМрд▓рд┐рдХ рдирд╣реАрдВ рд╣реИред рдореЗрд░реА рд╢реИрд▓реА:
- рд╡рд┐рдЬреЗрдЯ рдЕрд▓рдЧ-рдЕрд▓рдЧ w.widget_name.js рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИрдВред
- рд╡рд┐рдЬреЗрдЯ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдорд╕реНрдерд╛рди
W
рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдПрдХ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ: W.WidgetName
ред - рдХрдХреНрд╖рд╛рдПрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ - рд╕рд╛рдзрд╛рд░рдг рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛рд░реНрдп рдФрд░ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рд░рд╛рд╕рддред
- рдирд┐рдЬреА рдЧреБрдг рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рд░реЗрдЦрд╛рдВрдХрд┐рдд рд╣реЛрдиреЗ рд▓рдЧрддреА рд╣реИрдВред
- рд╡рд┐рдЬреЗрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ (рдпрд╛ HTML рдмреНрд▓реЙрдХ) рдХреЛ рдХрд┐рд╕ рдкреНрд░рд╛рд░реВрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рдирд┐рд░реНрдорд╛рддрд╛, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдБ / рдЧреБрдг, рдЙрддреНрдкрдиреНрди рдШрдЯрдирд╛рдПрдБред
- рдХрдиреНрд╡реЗрдВрд╢рди рджреНрд╡рд╛рд░рд╛, рд╡рд┐рдЬреЗрдЯ-рдирд┐рдпрдВрддреНрд░рд┐рдд рдХреНрд╖реЗрддреНрд░ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИ
.$
рд╕рдВрдкрддреНрддрд┐ (рдпрд╣ рдЗрд╕рдХрд╛ рдмрд╛рд╣рд░реА рдХреЛрдб рд╣реИ рдЬреЛ рдкреГрд╖реНрда рдкрд░ рд╡рд┐рдЬреЗрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DOM рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ)ред
рдереЛрдбрд╝рд╛ рдкрд╛рд░рд┐рднрд╛рд╖рд┐рдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгред рдЕрдХреНрд╕рд░, рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдЬреЗрдЯ HTML + рд╕реАрдПрд╕рдПрд╕ + рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЛ HTML рдФрд░ CSS рдХреЗ рдЙрдирдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд┐рдЬреЗрдЯ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдбрд┐рдЬрд╛рдЗрди рдХреА рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ - рдпрд╣ рдХреЛрдб рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рджреЛрдиреЛрдВ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдЬреЗрдЯреНрд╕ рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред
AddPhrase
рдЗрд╕ рд╡рд┐рдЬреЗрдЯ рдХреЗ рд▓рд┐рдП HTML рд╡рд┐рдЬреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ - рдЖрдкрдХреЛ рдПрдХ рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░ = рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдлреЙрд░реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рд╕рдм рдХреБрдЫ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
w.addphrase.js var W; W = W || {}; W.AddPhrase = function(id){ this.$ = $( '#'+id ); this._input = this.$.find('input');
рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдЬреЗрдЯ рдирд┐рд░реНрдорд╛рдг рдЬреЛрдбрд╝реЗрдВред рдФрд░ рдкреНрд░рдпреЛрдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдХреЛрдб - рдРрд╕рд╛ рдХреЛрдб рдпрд╣рд╛рдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡рд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдореБрдЦреНрдп рддрддреНрд╡ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
index.html <script type="text/javascript" src="w.addphrase.js"></script> ... <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 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');
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд▓реЗрдХрд┐рди рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдЬреЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рд╡рд┐рдЬреЗрдЯ "рдиреЗрддреНрд░рд╣реАрди" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯ рдФрд░ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рд╕рдиреНрдирд┐рд╣рд┐рдд рд╣реИ "рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рд╡рд┐рдЬреЗрдЯ" рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИ (рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд▓рд┐рдВрдХ рдЗрд╕
this._w
, рдЬрдмрдХрд┐ рд╕рднреА рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдЧреЗрдЯреНрд╕
w
рд╣реИрд╢ рдореЗрдВ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ), рдлрд┐рд░ рднреАред , рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдПрдХ рд╡рд░реНрддрдиреА рдЪреЗрдХ рд╡рд┐рдЬреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд▓рдЪреАрд▓рд╛рдкрди рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди - рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдкреИрдЪрд░ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдЬреЗрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрди рдХреЗ рдкрд╛рд░рджрд░реНрд╢реА рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╕реЗ рдмрдЪрддрд╛ рд╣реИ рдмрд╛рд╣рд░реА рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ред
index.html ... <script type="text/javascript" src="w.phrase.js"></script> ... ... <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 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> ... ... <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 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> ... ... <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 рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рдЪрд░реНрдЪрд╛ рд╣реБрдИ рдереАред
рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрдиреНрдп рд▓реЗрдЦ:
рд╕реНрдХреЗрд▓реЗрдмрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ ред