JQuery рдСрдирд▓рд╛рдЗрди рд╢реЙрдкрд┐рдВрдЧ рдХрд╛рд░реНрдЯ рдореЙрдбреНрдпреВрд▓

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

рдЗрд╕рд▓рд┐рдП, рд╣рдо jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдХреА рдЯреЛрдХрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВред
рдореИрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реВрдВрдЧрд╛, рдореИрдВ рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдХреЛ рдирд╣реАрдВ рдЫреВрдКрдВрдЧрд╛, рдореИрдВ рдпрд╣ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдФрд░ рд╕рд░реНрд╡рд░ рдХрд┐рд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред

рд╣рдо рддрд░реАрдХреЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВ:
(function($) { $.Cart = { init : function(settings){ //   }, add : function(context){ //         1. }, get : function(){ //           }, count : function(context) { //           }, del : function(context) { //      }, clear : function() { //    }, showMessage : function(message) { //      } } })(jQuery); 


рдкреНрд░рд╛рд░рдВрдн:
рдЖрд░рдВрднреАрдХрд░рдг рдореЗрдВ рд╣рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
Init рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдареАрдХ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд) рдФрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрдмрдВрдзрд┐рдд рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдХреЛ рддрддреНрд╡реЛрдВ рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
 var defaults = { content : '.content', //       count : '.prod span font', //   .prod       summ : '.summ span font', //   .prod   add : '.tocart', //  ,          addattr : 'name', //  ,  ID  counta : '.carts .actions .count input', //         countattr : 'name', //  ,  ID  countvattr : 'value', //  ,    del : '.carts .actions .delete input', //  ,     1       delattr : 'name', //  ,  ID  clear : '.cartclear', //  ,        topcart : '.topcart', //      urladd : '/cart/add/', // url     urlget : '/cart/get/', // url          urlcart : '/cart/', // url    urlcount : '/cart/count/', // url      urlclear : '/cart/clear/', // url    urldel : '/cart/del/', // url       type_message : 'flash', //        time_message : 3000, //    interval : 10000 //  ,                }; 

рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ
 $.extend(defaults, settings); this.settings = defaults; 

рд╣рдо рдЯреЛрдХрд░реА рдореЗрдВ рдорд╛рд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдХреБрд▓ рд░рд╛рд╢рд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рджрд┐рдП рдЧрдП рддрддреНрд╡реЛрдВ рдкрд░ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЗрдХрд╛рдИ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ)ред
 this.get(); //   setInterval(function(){ $.Cart.get(); //        }, this.settings.interval); $(this.settings.add).click(function(){ $.Cart.add(this); //         settings.add,       }); $(this.settings.counta).live('blur', function(){ $.Cart.count(this); //    ,       ,     }); $(this.settings.del).live('click', function(){ $.Cart.del(this); //        "" }); $(this.settings.clear).live('click', function(){ $.Cart.clear(); //   }); return this; 


1 рдкреАрд╕реА рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЯреЛрдХрд░реА рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдирд╛ред
рдЬреЛрдбрд╝рдиреЗ рдХреА рд╡рд┐рдзрд┐, рд╕рдВрджрд░реНрдн рдкреИрд░рд╛рдореАрдЯрд░ (рддрддреНрд╡ рдЬрд┐рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИред
 $.ajax({ url : $.Cart.settings.urladd, //    type : 'post', //  dataType: 'json', //  ,   data : {id : $(context).attr($.Cart.settings.addattr)}, // ,   (id  ) success : function(data){ //    if (data.count && data.summ || data.count===0 && data.summ===0) { //           ,    $($.Cart.settings.count).html(data.count); //      $($.Cart.settings.summ).html(data.summ); //      if (data.count>0) //     ,  $($.Cart.settings.topcart).find('a').attr('href', $.Cart.settings.urlcart); //      else //    $($.Cart.settings.topcart).find('a').attr('href', 'javascript:void(0);'); //    $.Cart.showMessage('<p>'+data.message+'</p>'+$($.Cart.settings.topcart).html()); //   } }); 


рдЯреЛрдХрд░реА рдореЗрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдХреБрд▓ рд░рд╛рд╢рд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдмреНрд▓реЙрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ (рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛)ред
рдЧреЗрдЯ рдореЗрдердб рдФрд░ рдРрдб рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдЙрд╕ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЧреЗрдЯ рдореЗрдердб рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред
 $.ajax({ url : $.Cart.settings.urlget, type : 'post', dataType: 'json', data : {}, success : function(data){ if (data.count && data.summ || data.count===0 && data.summ===0) { $($.Cart.settings.count).html(data.count); $($.Cart.settings.summ).html(data.summ); if (data.count>0) $($.Cart.settings.topcart).find('a').attr('href', $.Cart.settings.urlcart); else $($.Cart.settings.topcart).find('a').attr('href', 'javascript:void(0);'); } }); 


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдЫ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ url рдФрд░ vars (рдкреИрд░рд╛рдореАрдЯрд░) рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
 $.ajax({ url : data.url, type : 'post', dataType: 'json', data : data.vars, success : function(data){ if (data.count && data.summ || data.count===0 && data.summ===0) { $($.Cart.settings.count).html(data.count); $($.Cart.settings.summ).html(data.summ); if (data.count>0) $($.Cart.settings.topcart).find('a').attr('href', $.Cart.settings.urlcart); else $($.Cart.settings.topcart).find('a').attr('href', 'javascript:void(0);'); $.Cart.showMessage('<p>'+data.message+'</p>'+$($.Cart.settings.topcart).html()); } }, error : function(err) { if (err.status!==200) console.log(err.status+' '+err.statusText); } }); 


рдмрджрд▓реЗ рдореЗрдВ, рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝ рд╡рд┐рдзрд┐ рдмрджрд▓ рдЬрд╛рдПрдЧреАред
 $.Cart.updateCart({ url : $.Cart.settings.urladd, data : {id : $(context).attr($.Cart.settings.addattr)} }); 


рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
 $.Cart.updateCart({ url : $.Cart.settings.urlget, data : {} }); 


рдПрдХ рдЖрдЗрдЯрдо рдХреЗ рд╕рд╛рдорд╛рди рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЬрдм рдЙрд╕ рдЖрдЗрдЯрдо рдХреЗ рдЕрдиреБрд░реВрдк рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдлреЛрдХрд╕ рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред
 count : function(context) { //   count   context ( -   ) $.post($.Cart.settings.urlcount, { //     url   id : $(context).attr($.Cart.settings.countattr), // ID   count : $(context).attr($.Cart.settings.countvattr) //     }, function(data){ //   (text/html) $($.Cart.settings.content).html(data); //     $.Cart.get(); //       }); }, 


рдПрдХ рдирд╛рдо рд╣рдЯрд╛рдУред
 del : function(context) { //   del   context ( -       ) $.post($.Cart.settings.urldel, { //   id : $(context).attr($.Cart.settings.delattr) // ID  }, function(data){ //   (text/html) $($.Cart.settings.content).html(data); //     $.Cart.get(); //       }); }, 


рдЯреЛрдХрд░реА рдЦрд╛рд▓реА рдХрд░реЛред
 clear : function() { $.post($.Cart.settings.urlclear, {}, function(data){ $($.Cart.settings.content).html(data); //   data    ,    $.Cart.get(); //     ,       }); }, 


рдЯреЛрдХрд░реА рдореЗрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ (рдЕрд▓рд░реНрдЯ рдпрд╛ рдлреНрд▓реИрд╢ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░)ред
 showMessage : function(message) { //    if ($.Cart.settings.type_message==='alert') { //  alert alert(message); //   return; } else if ($.Cart.settings.type_message==='flash') { //  flash if ($('.flashmessage').length===0) //        ,  $('<div />').addClass('flashmessage').html(message).hide().appendTo('body').fadeIn(); //  ,    ,      </body>,    else //   $('.flashmessage').html(message); //      if (typeof($.Cart.message_time)==='number') //          clearTimeout($.Cart.message_time); //   $.Cart.message_time = setTimeout(function(){ //    $('.flashmessage').fadeOut(function(){ //       $(this).remove(); //      }); }, $.Cart.settings.time_message); //    } } 


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

рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЖрд▓реЛрдЪрдирд╛, рд╕рд╡рд╛рд▓ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВред
рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред

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


All Articles