JQuery рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ


jQuery рд╡реЗрдм рдпреБрд╡рддреА рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рдирдХ рдмрди рдЧрдпрд╛ рд╣реИ ред рдХрдИ рдмреЗрд╣рддрд░реАрди js рдЪреМрдЦрдЯреЗ рд╣реИрдВ рдЬреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди jQuery рдиреЗ рдЕрдкрдиреА рд▓рдкрдЯ, рд▓рд╛рд▓рд┐рддреНрдп рдФрд░ рдЬрд╛рджреВ рд╕реЗ рд╕рднреА рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рд▓реЛрдЧ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд▓реЛрдЧ jQuery рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд▓реЛрдЧ jQuery рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рднреА рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрдо рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖рдХрд░ рд╢реБрд░реБрдЖрддреА рд╕реЗ) HQuery jQuery рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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


рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА


jQuery рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред


рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ jquery.com рдкрд░ рдЬреЙрди рд░реЗрдЬрд┐рдЧ рдЙрд░реНрдл тАЛтАЛрдЬреЗрд░реЗрд╕реАрдЧ , рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдЧреБрд░реБ рдФрд░ рдореЛрдЬрд╝рд┐рд▓рд╛ рдХреЙрд░реНрдкреЛрд░реЗрд╢рди рдореЗрдВ рдкреВрд░реНрд╡ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреАрд▓рд╡рд╛рджреА рд╣реИрдВ ред рдЙрдирдХрд╛ рдЕрдкрдирд╛ рдмреНрд▓реЙрдЧ рд╣реИ - ejohn.org , рдЬрд╣рд╛рдБ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╢рд╛рдВрдд рд▓реЗрдЦреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдФрд░ рдХреИрдирд╡рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛ - рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ.рдЬреЗрдПрд╕ , рд╕рд╛рде рд╣реА рд╕рд╛рде рдкреБрд╕реНрддрдХ "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯред рдкреЗрд╢реЗрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХред тАЭ RIT рд╣реЙрд▓ рдСрдл рдлрд╝реЗрдо рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ

рдореБрдЦреНрдп jQuery рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА GitHub рдкрд░ рд╕реНрдерд┐рдд рд╣реИ , рдЬрд╣рд╛рдВ рд╕реНрд░реЛрдд рдХреЛрдб, рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг, рдХрд▓реЗрдХреНрдЯрд░, js-lint рдЪреЗрдХрд░, рдЖрджрд┐ рд╕реНрдерд┐рдд рд╣реИрдВред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рдЧреАрдерд╣рдм рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред OpenSource Javascript рд▓рд┐рдмрд╛рд╕ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ - рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк , js , MooTools , node.js , jQuery , рд░рд╛рдлреЗрд▓ , LibCanvas , YUI, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдФрд░ рди рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рд╕рдореБрджрд╛рдп рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╡рд╣рд╛рдВ рд╢рд░рдг рдкрд╛рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред GitHub рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИред

/ Src рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдиреЗ code.jquery.com/jquery-*.js рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрд╛ рдерд╛ рдФрд░ рдЗрд╕ рдмрд╛рдд рд╕реЗ рднрдпрднреАрдд рдереЗ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рдВрд░рдЪрд┐рдд рд╣реИ рдФрд░ рдЗрддрдирд╛ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИред рдПрдХ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рд╕реНрд░реЛрдд рдХреЗ "@ рд╕рдВрд╕реНрдХрд░рдг" рдФрд░ "@ рдбреЗрдЯ" рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдиреЛрдВ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ


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

рджреЛ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ - intro.js рдФрд░ outro.js , рдЬрд┐рдиреНрд╣реЗрдВ рдХреНрд░рдорд╢рдГ рдПрдХрддреНрд░рд┐рдд рд╕реНрд░реЛрдд рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
(function( window, undefined ) { var document = window.document, navigator = window.navigator, location = window.location; [...] //    window.jQuery = window.$ = jQuery; })(window); 


рдХреЛрд░


рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрдЦреНрдп рдмреНрдпрд╛рдЬ core.js рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА "рдорд╛рдВрд╕" рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рд╕реНрд░реЛрдд рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдПрдХ рдФрд░ рд╕реНрддрд░ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЪрд░ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
 var jQuery = (function () { var jQuery = function ( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); }; // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$, // A central reference to the root jQuery(document) rootjQuery, [...] rootjQuery = jQuery(document); [...] return jQuery; })(); 


рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдЖрдк jQuery рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛, jQuery рдФрд░ $ рдХреЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╡рд░реНрддрдорд╛рди рдорд╛рдиреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЙрдиреНрд╣реЗрдВ jQuery.noConflict() ) рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХреБрдЫ рд░реВрдЯрдЬрд┐рд╡рд┐рдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ jQuery рдСрдмреНрдЬреЗрдХреНрдЯ (рдЕрдХреНрд╕рд░ рдХреИрд╢ $(document) рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ $(document) рдЕрдиреБрдХреВрд▓рди)

рдереЛрдбрд╝рд╛ рдХрдо RegExp рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ рдЬрд┐рд╕реЗ jQuery.browser, jQuery.trim, json parsing, рдЖрджрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ ''.trim рдФрд░ [].indexOf , рдХреНрдпреЛрдВрдХрд┐ jQuery рдиреЗ рдЙрдирдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдмрдирд╛рдП рд░рдЦрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ jQuery.trim рдФрд░ jQuery.inArray рдореЗрдВ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

 trim = String.prototype.trim, indexOf = Array.prototype.indexOf, 


рд╡рд╕реНрддреБ рдирд┐рд░реНрдорд╛рдг


рд╣рдо "рдкрд╡рд┐рддреНрд░-рд╕рдВрддреЛрдВ" рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝ рд░рд╣реЗ рд╣реИрдВ jQuery - $ -functionред рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдПрдХ рдЕ-рдЖрдЪреНрдЫрд╛рджрд┐рдд рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдЯреБрдХрдбрд╝рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдПрдХ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╕реАрдЦрддреЗ рд╣реИрдВ;) jQuery рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдЬрд╛рджреВ рдпрд╣рд╛рдВ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ , рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВред

рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ jQuery рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛрдб рджреЗрдЦрд╛ рд╣реИ:

 var jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); }, 


рдпрд╣реА рд╣реИ, рдЬрдм рдЖрдк jQuery рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдХрд╛рдИ " jQuery.fn.init " рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЬрдЧрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдХреЛрдб рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрдо рд╣рдо рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 jQuery.fn = jQuery.prototype = { constructor: jQuery, init: function( selector, context, rootjQuery ) { [...] } [...] } // Give the init function the jQuery prototype for later instantiation jQuery.fn.init.prototype = jQuery.fn; 


рдЕрдм рд╕реЗ, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ jQuery.fn рдПрдХ jQuery рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдЬреНрдЮрд╛рди рд╣рдореЗрдВ рдХреБрдЫ рдиреАрдЪреЗ рдЬрд╛рдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, jQuery.fn.init.prototype рдПрдХ jQuery рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдЕрдВрдХ, рдФрд░ jQuery.fn.init.prototype рдирд┐рд░реНрдорд╛рддрд╛ jQuery рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд░реЛрдЪрдХ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред JQuery рдЦреЛрд▓реЗрдВ, рдХреНрд░реЛрдо рдХрдВрд╕реЛрд▓, рдФрд░ рджрд░реНрдЬ рдХрд░реЗрдВ:
 $(document) instanceof jQuery; // true $(document) instanceof jQuery.fn.init; // true 


рддрд╛рдХрд┐ рдЖрдк рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рд╛рд░ рд╕рдордЭреЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:
 var Init = function () { console.log('[Init]'); }; var jQuery = function () { console.log('[jQuery]'); return new Init(); }; Init.prototype = jQuery.prototype = { constructor: jQuery }; var $elem = jQuery(); // [jQuery] , [Init] console.log( $elem instanceof jQuery ); // true console.log( $elem instanceof Init ); // true 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдирд┐рд░реНрдорд╛рдг jQuery.fn.init рдСрдмреНрдЬреЗрдХреНрдЯ jQuery.fn.init , рдФрд░ jQuery jQuery.fn.init рдСрдмреНрдЬреЗрдХреНрдЯ jQuery.fn.init

рдкрд╛рд░рд╕рд┐рдо рддрд░реНрдХ


JQuery рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
 $(function () { alert('READY!') }); // ,      DOM $(document.getElementById('test')); //    $('<div />'); //    $('<div />', { title: 'test' }); //      //       css-: $('#element'); //    "element" $('.element', $previous ); //      element  $previous $("div[name=city]:visible:has(p)"); //  ,     

рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП - рдПрдВрдЯреЛрдирд╢реЗрд╡рдЪреБрдХ рдХреЗ рд▓реЗрдЦ " рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП jQueryред рднрд╛рдЧ 4ред рдЪрдпрдирдХрд░реНрддрд╛ " рдкрдврд╝реЗрдВ ред

рд╣рдо рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ jQuery.fn.init ред рдореИрдВ рдпрд╣рд╛рдВ рдЫрджреНрдо рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛:
 init: function( selector, context, rootjQuery ) { if ( !selector ) return this; // Handle $(DOMElement) if ( selector.nodeType ) return this = selector; // The body element only exists once, optimize finding it if ( selector === "body" && !context ) return this = document.body; if ( jQuery.isFunction( selector ) ) { return rootjQuery.ready( selector ); } // Handle HTML strings if ( typeof selector === "string" ) { // Verify a match, and that no context was specified for #id if ( selector.match(quickExpr) ) { if ( match[1] ) { return createNewDomElement( match[1] ); } else { return getById( match[2] ) } } else { return jQuery( context ).find( selector ); } } }, 


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

рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рдЬрдм рд╣рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЗрд╕реЗ "рддреЗрдЬ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐" рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рдмрд╛рдПрдВ рднрд╛рдЧ рд▓рд╛рдЗрди рдореЗрдВ рдЯреИрдЧ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рднрд╛рдЧ рддрддреНрд╡ рдХреА рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ:
quickExpr = /^(?: [^<]*(<[\w\W]+>)[^>]*$ | #([\w\-]*)$ )/;

рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЕрдиреБрд░реЛрдз рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рддреЛ find рд╡рд┐рдзрд┐ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЦреЛрдЬ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрддреНрд╡ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рднреА JResig рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдпреЛрдЬрд┐рдд) Sizzle (рдЕрдзрд┐рдХрд╛рд░ Dojo рдлрд╛рдЙрдВрдбреЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ)ред

рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕


рдХрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд░реНрдЧ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 var MyClass = function () { // constructor }; MyClass.prototype = { // prototype }; var instance = new MyClass(); //            ,    MyClass.prototype.plugin = function () { console.log("He's alive!"); }; instance.plugin(); // He's alive! 


рдЙрд╕реА рддрд░рд╣, рд╣рдо рдорд╛рдирдХ jQuery рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 jQuery.prototype.plugin = function () { // Here is my plugin }; 


рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, fn jQuery.prototype рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд▓рд┐рдВрдХ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдХрдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 jQuery.fn.plugin = function () { // Here is my plugin // this    jquery-,     }; 


рдФрд░ рдпрд╣ рдкреНрд▓рдЧрдЗрди рд╕рднреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрдорд┐рдд рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреЛ рдХрд┐ рдмрдирд╛рдИ рдЧрдИ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВред рд╕реАрдзреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЧреБрдг рдЬреЛрдбрд╝рдХрд░, рд╣рдо рд╕реНрдереИрддрд┐рдХ рдЧреБрдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

 jQuery.plugin = function () { // Here is my plugin }; 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЫреЛрдЯреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ:

 new function (document, $, undefined) { var privateMethod = function () { // private method, used for plugin }; $.fn.myPlugin = function () { }; // ,   ,    dom-: $.myPlugin = function () { }; }(document, jQuery); 


рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг jQuery рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрдкрд┐рдХрд░ ред

рдирд┐рд╖реНрдХрд░реНрд╖


рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, jQuery рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрд╛рд╣рд░реА рд╕рд╛рджрдЧреА рдФрд░ рд╣рд▓реНрдХрд╛рдкрди рдерд╛, рд╕рд╛рде рд╣реА рдирд╛рдореЛрдВ рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛: setStyles рдЦрд┐рд▓рд╛рдл setStyles , setAttributes рдЦрд┐рд▓рд╛рдл attr , рдЖрджрд┐ред рд╡рд┐рдЪрд╛рд░ рд╕рд┐рд░реНрдл рд╕реБрдВрджрд░ рдерд╛ рдФрд░ рдХрдИ рд▓реЛрдЧреЛрдВ рдХрд╛ рдорди рдЬреАрдд рд▓рд┐рдпрд╛ред JQuery рдХреЗ рдХреНрд▓реЛрди рдмрд╣реБрдд рдЖрдо рд╣реИрдВ рдпрд╛ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд░рд▓рддрд╛ рдзреЛрдЦрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рд╡рд┐рдзрд┐ рдХреЗ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдирд╛рдо рдХреЛ рдЫреЛрдЯрд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддреАрди рдмрд╛рд░ рд╕реЛрдЪреЗрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╕рд╛рдордиреЗ рдЖ рдЬрд╛рдП;)

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд▓реЗрдЦ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╣реА рд▓рд╛рдЬрд┐рдореА рдирд╣реАрдВ рдерд╛ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЪрдХреНрд░ рдХреЛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЧрд╣рд░рд╛рдИ рддрдХ jQuery рдореЗрдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЕрдиреНрдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles