рдЦреБрдж рдХреЛ Gzip: рд╕реНрдХреНрд░рд┐рдкреНрдЯ 20% рдмреЗрд╣рддрд░ рд╕реЗрдХ

рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреБрдВрдЬреА



рдпрджрд┐ рдЖрдк рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ , YUI рдХрдВрдкреНрд░реЗрд╕рд░ , рдпрд╛ рдХреБрдЫ рдФрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреБрдЪрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЕрдВрддрд╣реАрди рддрд╛рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: .prototype



, .length



, offsetParent



рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ jQuery UI рд╕реЙрд░реНрдЯреЗрдмрд▓ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо gzip рдХреЛ рдкрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рд╣рд╛рде рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10K рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ), рддреЛ рдпрд╣ рд╕рдВрдкреАрдбрд╝рди рддрдХрдиреАрдХ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред



рдЪрд▓реЛ jQuery рдпреВрдЖрдИ рдмрдВрдбрд▓ рдореЗрдВ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ jquery.ui.sortable.js рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 1.8.2 рд▓реЗрддреЗ рд╣реИрдВред рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╡рдЬрди 38.5 KB рд╣реИ, рдЬреЛ рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреБрдЪрд┐рдд рд╣реИ - 23.1 KB, gzip рдореЗрдВ - 5.71 KB рд╣реИред рд╕реНрдХреНрд░реАрди рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдкреНрд▓рдЧрдЗрди рд╣реИ ред рдореБрдЭреЗ _mouseCapture()



рдкрд╕рдВрдж рдЖрдпрд╛:

  1. / *!
  2. * рд╕реНрд░реЛрдд рдХреЛрдб
  3. * /
  4. ( рдлрд╝рдВрдХреНрд╢рди ($) {
  5. рд╡рд░
  6. _mouseCapture = function ( рдШрдЯрдирд╛ , рдУрд╡рд░рд░рд╛рдЗрдбрд╣реИрдВрдбрд▓) {
  7. рдЕрдЧрд░ ( рдпрд╣ред рд░реВрдкрд╛рдВрддрд░рдг) {
  8. рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
  9. }
  10. if ( рдпрд╣ .options.disabled) рдпрд╣ .options.type == 'static' ) рдЧрд▓рдд рд╣реИ ?
  11. // рд╣рдореЗрдВ рдкрд╣рд▓реЗ рдПрдХ рдмрд╛рд░ рдЖрдЗрдЯрдо рдбреЗрдЯрд╛ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
  12. рдпрд╣ ._refreshItems ( рдШрдЯрдирд╛ );
  13. // рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреЛрдб (рдпрд╛ рдЙрд╕рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ) рдЗрд╕ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдЗрдЯрдо рд╣реИ
  14. var currentItem = null , self = this , nodes = $ ( event .get) .parents ()ред рдкреНрд░рддреНрдпреЗрдХ ( рдлрдВрдХреНрд╢рди ) ({)
  15. рдЕрдЧрд░ ($ .data ( рдпрд╣ , 'рдХреНрд░рдордмрджреНрдз-рдЖрдЗрдЯрдо' ) == рд╕реНрд╡) {
  16. currentItem = $ ( рдпрд╣ );
  17. рдЭреВрдареЗ рд▓реМрдЯрдирд╛ ;
  18. }
  19. });
  20. if ($ .data ( рдЗрд╡реЗрдВрдЯ .target, 'Sortable-item' ) == рд╕реНрд╡рдпрдВ) currentItem = $ ( рдЗрд╡реЗрдВрдЯ .target);
  21. рдЕрдЧрд░ (currentItem) рдЭреВрдареЗ рд▓реМрдЯрддреЗ рд╣реИрдВ ;
  22. рдЕрдЧрд░ ( рдпрд╣ .options.handle && !! рдУрд╡рд░рд░рд╛рдЗрдбрд╣реИрдВрдбрд▓) {
  23. var рдорд╛рдиреНрдпHandle = false ;
  24. $ ( рдпрд╣ .options.handle, currentItem) .find ( "*" ) .andSelf (); рдкреНрд░рддреНрдпреЗрдХ ( рдлрд╝рдВрдХреНрд╢рди () { if ( рдпрд╣ = рдИрд╡реЗрдВрдЯ .target) validHandle = true ;});
  25. рдЕрдЧрд░ (рдорд╛рдиреНрдп рд╣реИ) рдЭреВрдареА рд╡рд╛рдкрд╕реА ;
  26. }
  27. thisред currentItem = currentItem;
  28. рдпрд╣ ._removeCurrentsFromItems ();
  29. рд╕рдЪ рд▓реМрдЯрдирд╛ ;
  30. };
  31. }) (jQuery);




рднреНрд░рдорд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд▓рдЧрдЗрди, рдФрд░ рд╕рдВрдкреВрд░реНрдг рд╕реЙрд░реНрдЯреЗрдмрд▓ - рдореВрд▓ рдПрдХ рдХрд╣реЗрдВрдЧреЗред рдЯреЗрд╕реНрдЯ рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╡рдЬрди рд▓рдЧрднрдЧ 1 KB рд╣реЛрддрд╛ рд╣реИ, рд╕рдВрдХреБрдЪрд┐рдд рд░реВрдк рдореЗрдВ 576 рдмрд╛рдЗрдЯреНрд╕, рдЧрдЬрд╝рд┐рдк 391 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВред



/*! <br> * <br> * , 576 <br> */ <br>( function (d){ var _mouseCapture= function (a,b){ if ( this .reverting) return false ; if ( this .options.disabled|| this .options.type== "static" ) return false ; this ._refreshItems(a); var c= null ,e= this ;d(a.target).parents().each( function (){ if (d.data( this , "sortable-item" )==e){c=d( this ); return false }}); if (d.data(a.target, "sortable-item" )==e)c=d(a.target); if (!c) return false ; if ( this .options.handle&&!b){ var f= false ;d( this .options.handle,c).find( "*" ).andSelf().each( function (){ if ( this ==a.target)f= true }); if (!f) return false } this .currentItem=c; this ._removeCurrentsFromItems(); return true }})(jQuery);







this



тЖТ self





рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рдХреЗ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдФрд░ рдЕрдЪреВрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВред рд╣рдорд╛рд░реЗ рдореВрд▓ рдкреНрд▓рдЧрдЗрди рдореЗрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ 587 рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ 2.3 рдХреЗрдмреА рдпрд╛ рдХреЛрдб рдХрд╛ 6% рд╣реИ)ред рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЪрд░ self



рдЬреЛрдбрд╝реЗрдВ:

var <br> self = this ;<br>





рдЕрдм рд╣рдо this



рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ self



рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ self



рдФрд░ рд╕рдВрдкреАрдбрд╝рди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

рдпрд╣ рдерд╛:

this .currentItem=e; this ._removeCurrentsFromItems();





рдпрд╣ рдмрди рдЧрдпрд╛:

d.currentItem=e;d._removeCurrentsFromItems();





рдкреВрд░реЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд▓рдЧрдЗрди:

/*! <br> * this > self <br> * YUI Compressor, 552 <br> */ <br>( function (b){ var a= function (f,g){ var d= this ; if (d.reverting){ return false } if (d.options.disabled||d.options.type== "static" ){ return false }d._refreshItems(f); var e= null ,c=b(f.target).parents().each( function (){ if (b.data( this , "sortable-item" )==d){e=b( this ); return false }}); if (b.data(f.target, "sortable-item" )==d){e=b(f.target)} if (!e){ return false } if (d.options.handle&&!g){ var h= false ;b(d.options.handle,e).find( "*" ).andSelf().each( function (){ if ( this ==f.target){h= true }}); if (!h){ return false }}d.currentItem=e;d._removeCurrentsFromItems(); return true }})(jQuery);





рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ! рд╡реИрд╕реЗ, рд▓рд╛рдЗрди 19 рдкрд░ рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА self = this



рдШреЛрд╖рдгрд╛ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереА, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдВ рд╣рдордиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░ рджреА рдереА, рдФрд░ рдПрдХ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рдХреБрдЫ рд╡рд░реНрдгреЛрдВ рдХреЛ рднреБрдЧрддрд╛рди рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдХрдо рд╕реЗ рдХрдо 4 this



рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ 70 рд╣реИрдВ)ред



рдХреБрдВрдЬреА рдФрд░ рддрд╛рд░



рдЕрдм рд╢реЗрд╖ рдХреЛрдб рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦреЗрдВред рджреЛрд╣рд░рд╛рдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ options



, target



, data



, "sortable-item"



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

var <br> a = {<br> options: {<br> visible: true ,<br> mess: 'hi' <br> }<br> };







1:

if (a.options.visible) {<br> alert(a.options.mess);<br> a.options.visible = false ;<br>}



2:

var <br> o = 'options' ,<br> v = 'visible' ;<br> if (a[o][v]) {<br> alert(a[o].mess);<br> a[o][v] = false ;<br>}










рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ, рд╣рдореЗрдВ рджреЛ рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ visible



рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рддреАрди рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмрд╛рд░ options



ред 40-рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдкреНрд▓рдЧ-рдЗрди рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдФрд░ рднреА рдЕрдзрд┐рдХ, рдпрд╣ рдХреЛрдб рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рдареЛрд╕ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ)ред



рдЖрдк рдХреЛрдб рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЪрд░ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛: /((\')|(\")|\.)\b([a-z_][\w-]+\w)\b(?(2)\')(?(3)\")/i



рд╕реНрд░реЛрдд рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП 175 рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рд╛рдкреНрдд рд╣реБрдП, 15:

  1. / *!
  2. * рдЗрд╕реЗ рдмрджрд▓реЗрдВ> рд╕реНрд╡
  3. * рдЪрд╛рдмрд┐рдпрд╛рдБ рдФрд░ рддрд╛рд░ рдХреА рдЬрдЧрд╣
  4. * /
  5. ( рдлрд╝рдВрдХреНрд╢рди ($) {
  6. рд╡рд░
  7. _reverting = ' reverting ' , // 3
  8. _options = 'рд╡рд┐рдХрд▓реНрдк' , // 51
  9. _disabled = 'рдЕрдХреНрд╖рдо' , // 4
  10. _type = 'type' , // 2
  11. _static = 'static' , // 2
  12. __refreshItems = '_refreshItems' , // 2
  13. _target = 'target' , // 4
  14. _рдкрд░рд┐ = = 'рдорд╛рддрд╛-рдкрд┐рддрд╛' , // 2
  15. _each = 'рдкреНрд░рддреНрдпреЗрдХ' , // 5
  16. _рджрддрд╛ = 'рдбреЗрдЯрд╛' , // 5
  17. _sortable_item = ' рд╕реЙрд░реНрдЯреЗрдмрд▓ -рдЖрдЗрдЯрдо' , // 6
  18. _рд╣рдВрдж = 'рд╕рдВрднрд╛рд▓' , // 2
  19. _find = 'рдЦреЛрдЬ' , // 2
  20. _currentItem = 'currentItem' , // 52
  21. FALSE =! рез, // рейреж
  22. TRUE =! реж, // резрез
  23. _mouseCapture = function ( рдШрдЯрдирд╛ , рдУрд╡рд░рд░рд╛рдЗрдбрд╣реИрдВрдбрд▓) {
  24. рд╡рд░
  25. рд╕реНрд╡ = рдпрд╣ ;
  26. рдЕрдЧрд░ (рд╕реНрд╡рдпрдВ [_reverting]) {
  27. рд╡рд╛рдкрд╕реА FALSE;
  28. }
  29. if (self [_options] [_ рд╡рд┐рдХрд▓рд╛рдВрдЧ] || self [_options] [_ type] == _static) рд╡рд╛рдкрд╕реА ALAL;
  30. рдЖрддреНрдо [__ рддрд╛рдЬрд╝рд╛ рдпрд╣] ( рдШрдЯрдирд╛ );
  31. var currentItem = null , nodes = $ ( рдШрдЯрдирд╛ [_target]) [_ рдорд╛рддрд╛-рдкрд┐рддрд╛] () [_ рдкреНрд░рддреНрдпреЗрдХ] ( рдлрд╝рдВрдХреНрд╢рди () {
  32. рдЕрдЧрд░ ($ [_ рдбреЗрдЯрд╛] ( рдпрд╣ , _sortable_item) == рд╕реНрд╡рдпрдВ) {
  33. currentItem = $ ( рдпрд╣ );
  34. рд╡рд╛рдкрд╕реА FALSE;
  35. }
  36. });
  37. if ($ [_ рдбреЗрдЯрд╛] ( рдШрдЯрдирд╛ [_target], _sortable_item) == рд╕реНрд╡рдпрдВ) currentItem = $ ( рдШрдЯрдирд╛ [_target]);
  38. рдЕрдЧрд░ (currentItem) рд╡рд╛рдкрд╕реА FALSE;
  39. рдЕрдЧрд░ (рд╕реНрд╡рдпрдВ [_options] [_ рд╣реИрдВрдбрд▓] &&! рдУрд╡рд░рд░рд╛рдЗрдбрд╣реИрдВрдбрд▓) {
  40. var рдорд╛рдиреНрдпрд╣реИрдВрдбрд▓ = FALSE;
  41. $ (рд╕реНрд╡рдпрдВ [_options] [_ handle], currentItem) [_ find] ( "*" ) .andSelf () [_ рдкреНрд░рддреНрдпреЗрдХ] ( рдлрд╝рдВрдХреНрд╢рди () { if ( рдпрд╣ = рдШрдЯрдирд╛ [_target]) validHandh = TRUE;});
  42. рдЕрдЧрд░ (рд╡реИрдз рд╣реИ) FALSE;
  43. }
  44. рдЖрддреНрдо [_currentItem] = currentItem;
  45. self._removeCurrentsFromItems ();
  46. TRUE рд▓реМрдЯрд╛рдУ;
  47. };
  48. }) (jQuery);




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

  1. / *!
  2. * рдЗрд╕реЗ рдмрджрд▓реЗрдВ> рд╕реНрд╡
  3. * рдЪрд╛рдмрд┐рдпрд╛рдБ рдФрд░ рддрд╛рд░ рдХреА рдЬрдЧрд╣
  4. * YUI рдХрдВрдкреНрд░реЗрд╕рд░, 395 B + JS рдмреНрдпреВрдЯреАрдлрд╛рдпрд░
  5. * /
  6. ( рдлрд╝рдВрдХреНрд╢рди (рд╕реА) {
  7. var b = function (v, w) {
  8. var t = рдпрд╣ ;
  9. рдЕрдЧрд░ (t [e]) {
  10. рд╡рд╛рдкрд╕реА рдУ
  11. }
  12. if (t [m] [k] || t [m] [r] == f) {
  13. рд╡рд╛рдкрд╕реА рдУ
  14. }
  15. t [n] (v);
  16. рд╡рд░ рдпреВ = рдЕрд╢рдХреНрдд ,
  17. s = c (v [i]) [g] () [q] ( рдлрд╝рдВрдХреНрд╢рди () {
  18. рдЕрдЧрд░ (c [l] ( рдпрд╣ , j) == t) {
  19. u = c ( рдпрд╣ );
  20. рд╡рд╛рдкрд╕реА рдУ
  21. }
  22. });
  23. рдЕрдЧрд░ (c [l] (v [i], j) == t) {
  24. u = c (v [i])
  25. }
  26. рдЕрдЧрд░ (рдпреВ!) {
  27. рд╡рд╛рдкрд╕реА рдУ
  28. }
  29. рдЕрдЧрд░ (t [m] [d] &&! w) {
  30. var x = o;
  31. c (t [m] [d], u) [a] ( "*" ) .andSelf () [q] ( рдлрдВрдХреНрд╢рди () {
  32. рдЕрдЧрд░ ( рдпрд╣ == v [i]) {
  33. x = рдЬ
  34. }
  35. });
  36. рдЕрдЧрд░ (x) {
  37. рд╡рд╛рдкрд╕реА рдУ
  38. }
  39. }
  40. t [рдкреА] = рдпреВ;
  41. t._removeCurrentsFromItems ();
  42. рд╡рд╛рдкрд╕реА рдЬ
  43. }
  44. }) (jQuery);




document



, window



, рдЖрджрд┐



рдпрджрд┐ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдпреЗ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдПрдВ рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХреБрдЪрд┐рдд рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд▓рдЧрдЗрди рдореЗрдВ, document



рдФрд░ window



рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдкрдбрд╝реЛрд╕реА _mouseDrag()



рд╡рд┐рдзрд┐ рдХреА рдУрд░ _mouseDrag()



:

( function () {<br><br> if ( event .pageY - $( document ).scrollTop() < o.scrollSensitivity)<br> scrolled = $( document ).scrollTop($( document ).scrollTop() - o.scrollSpeed);<br> else if ($(window).height() - ( event .pageY - $( document ).scrollTop()) < o.scrollSensitivity)<br> scrolled = $( document ).scrollTop($( document ).scrollTop() + o.scrollSpeed);<br> <br> if ( event .pageX - $( document ).scrollLeft() < o.scrollSensitivity)<br> scrolled = $( document ).scrollLeft($( document ).scrollLeft() - o.scrollSpeed);<br> else if ($(window).width() - ( event .pageX - $( document ).scrollLeft()) < o.scrollSensitivity)<br> scrolled = $( document ).scrollLeft($( document ).scrollLeft() + o.scrollSpeed);<br><br>})();





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

( function () {<br> var g = document ,<br> f = window,<br> e = "scrollTop" ,<br> c = "scrollLeft" ,<br> b = "scrollSpeed" ,<br> d = "scrollSensitivity" ,<br> h = "pageY" ,<br> a = "pageX" ;<br><br> if ( event [h] - $(g)[e]() < o[d]) {<br> scrolled = $(g)[e]($(g)[e]() - o[b])<br> } else {<br> if ($(f).height() - ( event [h] - $(g)[e]()) < o[d]) {<br> scrolled = $(g)[e]($(g)[e]() + o[b])<br> }<br> }<br><br> if ( event [a] - $(g)[c]() < o[d]) {<br> scrolled = $(g)[c]($(g)[c]() - o[b])<br> } else {<br> if ($(f).width() - ( event [a] - $(g)[c]()) < o[d]) {<br> scrolled = $(g)[c]($(g)[c]() + o[b])<br> }<br> }<br><br>})();





рдпрд╣ рдЖрд╢рд╛рд╡рд╛рджреА рдХреА рдПрдмреАрд╕реА рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрди рд╕рд░рд▓ рдЪрд╛рд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрдбрд╝реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рднреА рдЬрд╣рд╛рдВ рдЙрдирдХрд╛ рд╕рд╣реА рд╕реНрдерд╛рди рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрддрд░ рдкрд░ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдЪрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдХреБрдЫ рд╕рдордЭреМрддреЛрдВ рдкрд░ рдЖрдП, рддреЛ рд╕рдВрдХреБрдЪрд┐рдд jQuery рдХрд╛ рд╡рдЬрди 70 рдХреЗрдмреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, 50ред



рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, jQuery рдХреЗ рдЖрд╡рд░рдг рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛:

var <br> doc = document ,<br> $doc = $(doc);







рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░


рдмрд╣реБрдд рдмрд╛рд░ (рд╣рд╛рдБ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛) рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ jQuery рдореЗрдВ рдЖрдкрдХреЛ рдЖрд╡рд░рдг рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

$( 'li' ).each( function (index, item) {<br> var <br> $item = $(item)<br> /* do something with $item */ <br>});





рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рднреА рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдХ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдПрдХ jQuery рдСрдмреНрдЬреЗрдХреНрдЯ рддреБрд░рдВрдд рддреАрд╕рд░реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

$( 'li' ).each( function (index, item, $item) {<br> /* do something with $item */ <br>});





рдмреНрдпреВрдЯреА!



рдкрд░рд┐рдгрд╛рдо



рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдкреНрд▓рдЧрдЗрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж, рдпрд╣ 576 рдХреЗ рдореБрдХрд╛рдмрд▓реЗ 395 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рд╡рдЬрди рдХрд░рдиреЗ рд▓рдЧрд╛, рд╣рдордиреЗ 31.4% рдЬреАрддрд╛:

/*! <br> * this > self <br> * <br> * YUI Compressor, 395 <br> */ <br>( function (c){ var b= function (v,w){ var t= this ; if (t[e]){ return o} if (t[m][k]||t[m][r]==f){ return o}t[n](v); var u= null ,s=c(v[i])[g]()[q]( function (){ if (c[l]( this ,j)==t){u=c( this ); return o}}); if (c[l](v[i],j)==t){u=c(v[i])} if (!u){ return o} if (t[m][d]&&!w){ var x=o;c(t[m][d],u)[a]( "*" ).andSelf()[q]( function (){ if ( this ==v[i]){x=h}}); if (!x){ return o}}t[p]=u;t._removeCurrentsFromItems(); return h}})(jQuery);







рдореВрд▓ рдкреНрд▓рдЧрдЗрди рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░, рдЪрд┐рддреНрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЪрд░ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рдВрдХреБрдЪрд┐рдд рд░реВрдк рдореЗрдВ рдкреНрд▓рдЧрдЗрди 18 рдХреЗрдмреА рд╡рдЬрди рдХрд░рдиреЗ рд▓рдЧрд╛, рд▓рд╛рдн 5.3 рдХреЗрдмреА (21.5%) рдерд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, gzip, 0.7 KB (13%) рд╕реЗ рднрд╛рд░реА рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ gzp рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдлрд╛рд░реА 2 рдЬреИрд╕реЗ рдкреБрд░рд╛рдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЛ рднреА рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЧрдЬрд╝рд┐рдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред



рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рд╕реНрд░реЛрдд рдкреНрд▓рдЧрдЗрди рдХреЗ рдЖрдХрд╛рд░:

рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣ тЖТ рд╕реНрд╡ рд╕рдВрдкрддреНрддрд┐ рдХреИрд╢рд┐рдВрдЧ
рдХреЛрдИ рд╕рдВрдкреАрдбрд╝рди рдирд╣реАрдВ 39,495 рекреж реирекрез 41,148
YUI / CC 23,656 22 185 рез6 рек реп рем
gzip 5 851 5950 6 504


рдЕрджреНрдпрддрди: рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред



All Articles