1var ecblib = ecblib || {}; 2ecblib.goods_ajax_cart_sb = ecblib.goods_ajax_cart_sb || {}; 3 4jQuery(function () { 5 var _goods_ajax_cart_sb = ecblib.goods_ajax_cart_sb; 6 7 var wait_class = 'js-animation-add-cart-in-progress'; 8 var wait_value = ecblib.msg.goods_ajax_cart_sb.PLEASE_WAIT; 9 var s_width = 60; 10 var l_width = 200; 11 if (document.URL.match("cart.aspx")) { 12 return false; 13 } 14 var $btn_cart = jQuery(".js-animation-add-cart"); 15 var noraml_class = $btn_cart.attr("class"); 16 jQuery(document).off("click", ".js-animation-add-cart"); 17 jQuery(document).on("click", ".js-animation-add-cart", function (e) { 18 var loadStart = function (elem) { 19 jQuery(elem).addClass(wait_class); 20 jQuery(elem).text(wait_value); 21 return elem; 22 }; 23 var loadEnd = function (elem, iserror) { 24 if (!iserror) { 25 // ecblib.ui.showToolTip(jQuery("." + wait_class), { tooltip: ecblib.msg.goods_ajax_cart_sb.TO_SHOPPING_CART, diptimeSec: 2 }); 26 jQuery(".block-modal-cart-goods-name").html(name); 27 jQuery(".block-modal-cart-goods-price .block-goods-variation-color").html(color); 28 jQuery(".block-modal-cart-goods-price .block-goods-variation-size").html(size); 29 if (point) { 30 jQuery(".block-modal-cart-goods-price .block-goods-price--price").removeClass('price'); 31 } else { 32 jQuery(".block-modal-cart-goods-price .block-goods-price--price").addClass('price'); 33 } 34 jQuery(".block-modal-cart-goods-price .block-goods-price--price").html(price); 35 jQuery("#add-cart").stop().fadeIn(250); 36 ecblib.ui.showCartCount(); 37 setTimeout(function () { 38 jQuery(elem).removeClass(wait_class); 39 jQuery(elem).text(ecblib.msg.goods_ajax_cart_sb.PUT_IN_SHOPPING_CART); 40 }, 2400); 41 42 } else { 43 jQuery(elem).removeClass(wait_class); 44 jQuery(elem).text(ecblib.msg.goods_ajax_cart_sb.PUT_IN_SHOPPING_CART); 45 } 46 }; 47 var addCart = function (b, g) { 48 var o = loadStart(b); 49 jQuery.ajax({ 50 async: true, 51 type: "POST", 52 url: ecblib.sys.wwwroot + "/shop/js/addcart.aspx", 53 data: { 54 "goods": goods, 55 "crsirefo_hidden": crsirefo_jscart 56 }, 57 cache: false, 58 ifModified: false, 59 dataType: "json", 60 success: function (result) { 61 result = result || {}; 62 if ('ecblib' in window && 'abtest' in ecblib && 'loadABtest' in ecblib.abtest) { 63 ecblib.abtest.saveBlockClickLog("jscart"); 64 } 65 if (result.IsUseGtmGa === 'true') { 66 window.dataLayer = window.dataLayer || []; 67 dataLayer.push({ 68 'metatag_ga_virtualurl_addcart': result.AjaxVirtualUrl_AddCart, 69 'event': 'metatag_ga_cart_added' 70 }); 71 } else if (result.IsUseLegacyGa === 'true') { 72 if (typeof gtag == "function") { 73 var gatrackingcode = jQuery("meta[property='ecb:GATrackingCode']").attr('content'); 74 gtag('config', gatrackingcode, { 'page_title': 'AddCart', 'page_location': ecblib.sys.wwwroot + '/shop/cart/addcart.aspx?goods=' + goods }); 75 } 76 } 77 if (result.ErrMessage && result.ErrMessage.length > 0) { 78 ecblib.ui.alert(ecblib.msg.modal_title.ERROR, result.ErrMessage.join("\r\n").replace(/<\/?[^>]+>/gi, "")); 79 loadEnd(o, true); 80 return false; 81 } 82 if (jQuery("#jscart_replace_").length > 0) { 83 jQuery.ajax({ 84 type: 'GET', 85 url: ecblib.sys.wwwroot + '/shop/js/cart.aspx', 86 dataType: 'text', 87 async: false, 88 timeout: 10000 89 }).done(function(data){ 90 jQuery('#jscart_replace_').html(data); 91 setTimeout(function () { 92 loadEnd(o, false); 93 }, 400); 94 }); 95 } else { 96 setTimeout(function () { 97 loadEnd(o, false); 98 }, 400); 99 } 100 }, 101 error: function (xhr, status, thrown) { 102 loadEnd(o, true); 103 ecblib.ui.alert(ecblib.msg.modal_title.ERROR, ecblib.msg.goods_ajax_cart_sb.SESSION_EXPIRED); 104 return false; 105 } 106 }); 107 return true; 108 }; 109 if (jQuery(this).hasClass(wait_class)) { 110 return false; 111 } 112 var href = jQuery(this).attr("href"); 113 var re = new RegExp("goods=([0-9A-Za-z_\-]+)"); 114 var matches = href.match(re); 115 var goods = ""; 116 var name = jQuery(this).data('name'); 117 var color = jQuery(this).data('color'); 118 var size = jQuery(this).data('size'); 119 var point = jQuery(this).data('point'); 120 var price = jQuery(this).data('price'); 121 if (matches && matches.length == 2) { 122 goods = matches[1]; 123 } else { 124 return true; 125 } 126 if (jQuery("#agree_" + goods).length > 0) { 127 var btn = this; 128 ecblib.ui.dialog('agree_' + goods, { 129 buttons: { 130 'btnAgree': function (action) { 131 addCart(btn, goods); 132 action.close(); 133 } 134 , 'btnNotAgree': function (action) { 135 action.close(); 136 } 137 } 138 }); 139 } else { 140 addCart(this, goods); 141 return false; 142 } 143 return false; 144 });
145 146 jQuery(document).on("change", ".block-variation--item-dropdown", function (e) { 147 var selectgoods = jQuery(this).val(); 148 jQuery('.js-animation-add-cart').attr("href", ecblib.sys.wwwroot + '/shop/cart/cart.aspx?goods=' + selectgoods); 149 jQuery('.js-animation-add-cart').data('name', jQuery('.block-variation--item-dropdown option[value=\"' + selectgoods + '\"]').data('name')); 150 jQuery('.js-animation-add-cart').data('color', jQuery('.block-variation--item-dropdown option[value=\"' + selectgoods + '\"]').data('color')); 151 jQuery('.js-animation-add-cart').data('size', jQuery('.block-variation--item-dropdown option[value=\"' + selectgoods + '\"]').data('size')); 152 jQuery('.js-animation-add-cart').data('point', jQuery('.block-variation--item-dropdown option[value=\"' + selectgoods + '\"]').data('point')); 153 jQuery('.js-animation-add-cart').data('price', jQuery('.block-variation--item-dropdown option[value=\"' + selectgoods + '\"]').data('price')); 154 }); 155});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.