JQuery рдпреВрдЖрдИ рд╡рд┐рдЬреЗрдЯ рдлреИрдХреНрдЯрд░реА

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

рдпрд╣ рдХреНрдпрд╛ рд╣реИ


рд╡рд┐рдЬреЗрдЯ рдлреИрдХреНрдЯрд░реА рдПрдХ jQuery рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рд╡рд┐рдзрд┐ рд╣реИ - jQuery.widget - 2 рдпрд╛ 3 рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ред

jQuery.widget( 'namespace.widgetname', namespace.superwidget, //   -    //       {...} //  , //      ); 

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

 jQuery.widget("demo.multi", {...}) 

jQuery.demo.multi рдФрд░ jQuery.demo.multi.prototype ред

рджреВрд╕рд░рд╛ (рд╡реИрдХрд▓реНрдкрд┐рдХ) рддрд░реНрдХ, рдЗрд╕рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jQuery UI рдореЗрдВ рдПрдХ "рдорд╛рдЙрд╕" рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП [рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде] рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, draggable , droppable рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдорд╛рдЙрд╕ рдкреНрд▓рдЧрдЗрди рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ:

 jQuery.widget( "ui.draggable", $.ui.mouse, {...} ); 

рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░реНрдХ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд┐рдЬреЗрдЯ рд╕реАрдзреЗ "рдореБрдЦреНрдп рд╡рд┐рдЬреЗрдЯ" jQuery.Widget рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ (рдЫреЛрдЯреЗ w рдХреЗ рд╕рд╛рде jQuery.Widget рдФрд░ рдмрдбрд╝реЗ W рдХреЗ рд╕рд╛рде jQuery.Widget рдмреАрдЪ рдЕрдВрддрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ)ред

рдЕрдВрддрд┐рдо рддрд░реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдмреНрджрд┐рдХ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХрд╛рд░рдЦрд╛рдирд╛ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рд╕рднреА рд╡рд┐рдЬреЗрдЯреНрд╕ рд╕реЗ jQuery.Widget рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реЗ рдЗрд╕реЗ рдореВрд▓ jQuery.Widget рддрдХ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

рдЬрдм jQuery.widget рдХреЛ jQuery рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк (jQuery.fn) рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ jQuery.fn.multi рд╣реЛрдЧрд╛ред .fn рд╡рд┐рдзрд┐ jQuery рд╡рд╕реНрддреБ рдФрд░ рд╡рд┐рдЬреЗрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд DOM рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред JQuery рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд▓рд╛рдн


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



рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдПрдБ


рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ

рдЖрдк рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ options (рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рдиреЛрдЯ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк), рдХреЙрд▓рдмреИрдХ _create , _setOption , рдФрд░ destroy рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрджрд╛рд╣рд░рдг
 (function( $ ) { $.widget( "demo.multi", { //          options: { clear: null }, //   _create: function() { }, //   _setOption       _setOption: function( key, value ) { switch( key ) { case "clear": //   break; } //  jQuery UI 1.8,     _setOption    $.Widget.prototype._setOption.apply( this, arguments ); //  jQuery UI 1.9  ,     _super this._super( "_setOption", key, value ); }, //   destroy      DOM,     destroy: function() { //  jQuery UI 1.8    destroy    $.Widget.prototype.destroy.call( this ); //  jQuery UI 1.9        _destroy        } }); }( jQuery ) ); 

рддрд░реАрдХреЛрдВ рдореЗрдВ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди

рдЖрдкрдХреА рд╡рд╕реНрддреБ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рддрддреНрд╡реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдпрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреГрдердХ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреБрджреНрдзрд┐рдорд╛рди рд╣реЛрдЧрд╛, рдмрдЬрд╛рдп _create рдкрджреНрдзрддрд┐ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ _create рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрдб рдХреА рдирдХрд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рд╡рд┐рдЬреЗрдЯ рдореЗрдВ <select multiple> , рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ <li> рдФрд░ <ul> рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЪреНрдЪреЗ <option> рдКрдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ред рдЗрд╕реЗ _create рдкрджреНрдзрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 _create: function() { var self = this; this.list = $( "<ul>" ).insertAfter( this.element ); this.element.hide().find( "option" ).each(function( i, el ) { var $el = $( el ), text = $( el ).text(), item = $( "<li class='multi-option-item'>" + text + "</li>" ); item.appendTo( self.list ).click(function(){ console.log( $el.val() ); }); }); } 


рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ _create рдЗрд╕ _create рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдореВрд▓ <option> рддрддреНрд╡ рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реВрдЪреА рдЖрдЗрдЯрдо, рдпрд╛ <option> рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдпрд╛ рд╣рдЯрд╛рдП рдЧрдП рддрддреНрд╡реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ред рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП refresh рд╡рд┐рдзрд┐ рдХреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░ _create рдФрд░ _create рд╡рд┐рдзрд┐ рд╕реЗ _create ред рд╣рдо рд╕реВрдЪреА рдХреЗ рддрддреНрд╡реЛрдВ рдкрд░ рдХреНрд▓рд┐рдХреЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рднреА рдЕрд▓рдЧ рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗ, рдФрд░ рд╣рдо рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдирдП рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдШрдЯрдирд╛ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдЙрджрд╛рд╣рд░рдг
 _create: function() { this.list = $( "<ul>" ) .insertAfter( this.element ) .delegate( "li.multi-option-item", "click", $.proxy( this._itemClick, this ) ); this.element.hide(); this.refresh(); }, refresh: function() { //     this.items = this.items || $(); //  ,        this.element.find( "option:not(.demo-multi-option)" ).each( $.proxy(function( i, el ) { //  ,         var $el = $( el ).addClass( "demo-multi-option" ), text = $el.text(), //    item = $( "<li class='multi-option-item'>" + text + "</li>" ) .data( "option.multi", el ) .appendTo( this.list ); //    this.items = this.items.add( item ); },this)); //      ,          this.items = this.items.filter( $.proxy(function( i, item ) { var isInOriginal = $.contains( this.element[0], $.data( item, "option.multi" ) ); if ( !isInOriginal ) { $( item ).remove(); } return isInOriginal; }, this )); }, _itemClick: function( event ) { console.log( $( event.target ).val() ); } 

рдирд┐рдЬреА рд╡реАред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХреЗ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рдзреНрдпрд╛рди рджрд┐рдпрд╛, рд╣рдордиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛, рдЬрдмрдХрд┐ рдХреБрдЫ рдиреЗ рдЙрдирдХреЗ рдмрд┐рдирд╛ред рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рддрд░реАрдХреЛрдВ рдХреЛ "рдирд┐рдЬреА" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░рдЦрд╛рдирд╛ $.fn рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддрд╛ рд╣реИ

 $( "#something" ).multi( "_create" ) 

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди, рдЪреВрдВрдХрд┐ рд╡реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд╕рдордЭреМрддреЗ рд╕реЗ рдирд┐рдЬреА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм .data() рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ .data() рддреЛ рдЖрдк рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рдХреЛ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 $( "#something" ).data( "multi" )._create() 

рд╕рд╣реА рдирд┐рд░реНрдгрдп рдХреИрд╕реЗ рд▓реЗрдВ? рдпрджрд┐ рдЖрдкрдХреЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреБрдЫ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░реЗрдВред refresh рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╣реИ: рдЪреВрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрдпрди рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реА рдУрд░, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╝рдВрдХреНрд╢рди, рдЬреИрд╕реЗ рдХрд┐ _itemClick , рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдЧреБрдг

this.element

рдкреНрд▓рдЧрдЗрди рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рддрддреНрд╡ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 $( "#foo" ).myWidget() 

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

this.options

рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдХрд▓реНрдкред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ $.demo.multi.prototype.options рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ $.demo.multi.prototype.options ред рдХрд╕реНрдЯрдо рд╡рд┐рдХрд▓реНрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

this.namespace

рдкреНрд▓рдЧрдЗрди рдХрд╛ рдирд╛рдо рд╕реНрдерд╛рди, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рдбреЗрдореЛ"ред рдЖрдорддреМрд░ рдкрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

this.name

рдкреНрд▓рдЧрдЗрди рдХрд╛ рдирд╛рдо, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ "рдмрд╣реБ"ред рдЗрд╕ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИред this.namespace , рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

this.widgetEventPrefix

рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдкреНрд▓рдЧрдЗрди рдЗрд╡реЗрдВрдЯреНрд╕ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, dialog рдореЗрдВ рдПрдХ close рдХреЙрд▓рдмреИрдХ рд╣реЛрддрд╛ рд╣реИ; рдЬрдм рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ dialogclose рдШрдЯрдирд╛ рдкреЙрдк dialogclose ред рдИрд╡реЗрдВрдЯ рдирд╛рдо рдореЗрдВ рдИрд╡реЗрдВрдЯ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рдФрд░ рдХреЙрд▓рдмреИрдХ рдирд╛рдо рд╣реЛрддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, widgetEventPrefix рдХрд╛ рдорд╛рди рд╡рд┐рдЬреЗрдЯ рдХреЗ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдЦреАрдВрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ draggablestart рдЗрд╡реЗрдВрдЯ рдкреЙрдк рдЕрдк рд╣реЛ, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ dragstart рдХрд╣рд╛ рдЬрд╛рдП, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╡реЗрдВрдЯ рдХреЛ "рдбреНрд░реИрдЧ" рдХреЗ рдмрд░рд╛рдмрд░ рдЙрдкрд╕рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдирд╛рдо рдШрдЯрдирд╛ рдХреЗ рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдШрдЯрдирд╛ рдмрд┐рдирд╛ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╣реЛрдЧреАред рдЗрд╕рд╕реЗ dragdrag рдЬреИрд╕реА рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ dragdrag ред

this.widgetBaseClass

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

 element.addClass( this.widgetBaseClass + "-active" ) 

рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред .addClass( "demo-multi-active" ) ред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ рдФрд░ рдЕрдореВрд░реНрдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреИрд╕реЗ $.ui.mouse ред

рддрд░реАрдХреЛрдВ

(рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ - рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕реАрдзреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП)

_create

рдПрдХ рд╡рд┐рдзрд┐ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рдЬреЗрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рддрддреНрд╡реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдлрд╛рдВрд╕реА рдХреА рдШрдЯрдирд╛рдУрдВ рдЖрджрд┐ред рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

_init

рд╡рд┐рдзрд┐ рдЬрд┐рд╕реЗ рд╣рд░ рдмрд╛рд░ рд╡рд┐рдЬреЗрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд░реНрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реА рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди _init рдХреЛ _create рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЬреЗрдЯ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдордп рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ _init рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдирд╛рд╢ рдФрд░ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд┐рдирд╛, рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

destroy

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

option

рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ .css() рдФрд░ .attr() рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЖрдк рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдирд╛рдо, рдпрд╛ рдХрдИ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ _setOptions рдХреЙрд▓ _setOptions , рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

_setOptions

рдирд┐рдЬреА рд╡рд┐рдзрд┐, рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛ рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ _setOption рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

_setOption

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

 _setOption: function(key, value) { if (key === 'title') { this.titleElement.text(value); } $.Widget.prototype._setOption.apply(this, arguments); } 

рдореВрд▓ рд╡рд┐рдзрд┐ _setOption рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рдирдпрд╛ рд╡рд┐рдХрд▓реНрдк рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ _setOption рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрднреА-рдХрднреА рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдореВрд▓реНрдп рдХреЛ this.options[key] рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓ рд╡рд┐рдзрд┐ _setOption рдХреЛ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ _setOption ред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЪреАрдЬ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╡рд┐рдзрд┐ рдХреЗ рдЖрд░рдВрдн рдореЗрдВ рд╣реА рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ _setOption рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

enable

рд╣реЗрд▓реНрдкрд░ рдХреЙрд▓рд┐рдВрдЧ option('disabled', false) ред рдЖрдк рдЗрд╕ рд╣реЗрд▓реНрдкрд░ рдХреЙрд▓ рдХреЛ рдЪреЗрдХ рдХрд░рдХреЗ рднреА рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

 if (key === "disabled") 

рдЖрдкрдХреЗ _setOption ред

disable

рд╣реЗрд▓реНрдкрд░ рдХреЙрд▓рд┐рдВрдЧ option('disabled', true) ред рдЖрдк рдЗрд╕ рд╣реЗрд▓реНрдкрд░ рдХреЙрд▓ рдХреЛ рдЪреЗрдХ рдХрд░рдХреЗ рднреА рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

 if (key === "disabled") 

рдЖрдкрдХреЗ _setOption рдореЗрдВред

_trigger

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

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


All Articles