JavaScript技術在京東這個巨頭電商中應用非常廣泛,從頁面交互到數據處理,JavaScript都扮演著重要角色,今天我們就來看看京東中JavaScript的應用情況。
京東頁面中最常見的JavaScript用法是實現頁面交互效果,例如鼠標懸停效果。具體代碼如下:
$(document).ready(function () { $("li").hover( function () { $(this).children('ul').css("display", "block") }, function () { $(this).children('ul').css("display", "none") } ); });
除了鼠標懸停效果,京東還通過JavaScript實現了滾動加載商品列表的功能。
window.onload = function() { var iHeight = $(window).height(); var iTop = $('#product_list').offset().top; $(window).scroll(function() { var iScrollTop = $(window).scrollTop(); if(iScrollTop >iTop-iHeight) { //Ajax加載商品列表 } }); }
除了頁面交互的應用,JavaScript還負責著京東的數據處理工作。例如在購物車頁面,JavaScript就需要負責計算商品數量和金額,并實現相應的加減操作。
function changeOrderInfo(){ var sumPrice = 0; var sumCount = 0; for(var i=0;i< goods.length;i++){ sumPrice += (parseFloat(goods[i].price)*parseInt(goods[i].count)); sumCount += goods[i].count; } $('#sumPrice').html(sumPrice.toFixed(2)); $('#sumCount').html(sumCount); //Ajax保存購物車數據 }
除此之外,在商品詳情頁中,JS還能實現商品顏色、尺碼等屬性的動態選擇和SKU庫存的校驗。
$('#color').change(function(){ changeSku(); }); $('#size').change(function(){ changeSku(); }); function changeSku(){ var newSku = skuList.filter(function(s){ return s.color == $('#color').val() && s.size == $('#size').val(); })[0]; if(newSku){ $('#skuId').val(newSku.skuId); $('#stockCount').html(newSku.stockCount); $('#buyButton').removeClass('disableBtn'); } else { $('#skuId').val(''); $('#stockCount').html(0); $('#buyButton').addClass('disableBtn'); } }
總之,JavaScript技術在京東電商站點中發揮了重要的作用,通過不同的場景,我們可以看到JavaScript的強大和靈活性。