var?seckill?=?{
URL?:?{
now?:?function(){
return?'/seckill/time/now';
},
exposer?:?function(seckillId){
return?'/seckill/'+seckillId+'/exposer';
},
execution?:?function(seckillId,?md5){
return?'/seckill'?+?seckillId?+?'/'?+?md5?+?'/exection';
}
},
handleSecKill?:?function(seckillId,?node){
//處理秒殺邏輯
//生成一個(gè)開(kāi)始秒殺的按鈕(在操作節(jié)點(diǎn)之前先隱藏節(jié)點(diǎn))
node.hide().html('<button?class="btn?btn-primary?btn-lg"?id="killBtn">開(kāi)始秒殺</button>');//按鈕
//通過(guò)post請(qǐng)求服務(wù)器獲取秒殺地址
$.post(seckill.URL.exposer(seckillId),?{},?function(result){
//在回調(diào)函數(shù)中執(zhí)行交互流程
if(result?&&?result['success'])?{
var?exposer?=?result['data'];
//判斷是否開(kāi)啟了秒殺
if(exposer['exposed']){
//開(kāi)啟秒殺
//獲取秒殺地址
var?md5?=?exposer['md5'];
var?killUrl?=?seckill.URL.execution(seckillId,?md5);
console.log("killUrl:"?+?killUrl);
//綁定一次點(diǎn)擊事件,防止用戶(hù)連續(xù)點(diǎn)擊秒殺按鈕
$('#killBtn').one('click',?function(){
//執(zhí)行秒殺請(qǐng)求
//這里的this相當(dāng)于上句代碼$('#killBtn')本身
//1:先禁用按鈕(變灰)
$(this).addClass('disabled');
//2:發(fā)送秒殺請(qǐng)求執(zhí)行秒殺
$.post(killUrl,?{},?function(result){
if(result?&&?result['success']){
var?killResult?=?result['data'];
var?state?=?killResult['state'];
var?stateInfo?=?killResult['stateInfo'];
//3.顯示秒殺結(jié)果
node.html('<span?class="label?label-success">'?+?stateInfo?+?'</span>');
}
});
});
node.show();
}else{
//未開(kāi)始秒殺(每個(gè)用戶(hù)的計(jì)時(shí)可能有偏差,有的快有的慢)
//從服務(wù)器返回結(jié)果中獲取3個(gè)時(shí)間(矯正時(shí)間)
var?now?=?exposer['now'];
var?start?=?exposer['start'];
var?end?=?exposer['end'];
//矯正時(shí)間后重新計(jì)算計(jì)時(shí)邏輯
seckill.countdown(seckillId,?now,?start,?end);
}
}else{
console.log('result:'?+?result);
}
});
},
//驗(yàn)證手機(jī)號(hào)
validatePhone?:?function(phone){
if(phone?&&?phone.length?==?11?&&?!isNaN(phone))?{
return?true;
}else{
return?false;
}
},
//倒計(jì)時(shí)
countdown?:?function(seckillId,nowTime,startTime,?endTime){
var?seckillBox?=?$('#seckill-box');
//時(shí)間判斷
if(nowTime?>?endTime)?{
//秒殺結(jié)束
seckillBox.html('秒殺結(jié)束!');
}else?if(nowTime?<?startTime){
//秒殺未開(kāi)始,計(jì)時(shí)事件綁定(使用的是jquery的計(jì)時(shí)插件?countdown)
//開(kāi)始時(shí)間+1秒,防止用戶(hù)端的計(jì)時(shí)時(shí)間偏移
val?killTime?=?new?Date(startTime?+?1000);
seckillBox.countdown(killTime,function(event){
//當(dāng)時(shí)間變化時(shí),格式化輸出時(shí)間
var?format?=?event.strftime('秒殺倒計(jì)時(shí):%D天?%H時(shí)?%M分?%S秒');
seckillBox.html(format);
//倒計(jì)時(shí)結(jié)束后的回調(diào)事件
}).on('finish.countdown',?function(){
//獲取秒殺地址,控制顯示邏輯,執(zhí)行秒殺
seckill.handleSecKill(seckillId,?seckillBox);
});
}else{
//秒殺開(kāi)始
handleSecKill(seckillId,?seckillBox);
}
},
detail?:?{
//詳情頁(yè)初始化
init?:?function(params)?{
//手機(jī)驗(yàn)證和登錄,即時(shí)交互
//規(guī)劃我們的交互流程
//在cookie中查找手機(jī)號(hào)
var?killPhone?=?$.cookie('killPhone');
var?startTime?=?params['startTime'];
var?endTime?=?params['endTime'];
var?seckillId?=?params['seckillId'];
//驗(yàn)證手機(jī)號(hào)
if(!seckill.validatePhone(killPhone))?{
//如果沒(méi)有登錄,就綁定手機(jī)號(hào)
//獲取彈出層,控制它的輸出
var?killPhoneModal?=?$('#killPhoneModal');
console.log('inputPhone='+inputPhone);//TODO?使用console調(diào)試
killPhoneModal.modal({
show?:?true,//顯示彈出層
backdrop?:?'static',//禁止位置關(guān)閉(點(diǎn)擊彈出層之外的區(qū)域的話(huà),彈出層也不會(huì)關(guān)閉)
keyboard?:?false//關(guān)閉鍵盤(pán)事件(按ESC鍵,彈出層也不會(huì)關(guān)閉)
});
//給按鈕綁定點(diǎn)擊事件
$('#killPhoneBtn').click(function(){
//獲取輸入的手機(jī)號(hào)碼
var?inputPhone?=?$('#killPhoneKey').val();
if(seckill.validatePhone(killPhone))?{
//電話(huà)寫(xiě)入cookie,并且該cookie只在指定的path下才有效
$.cookie('killPhone',?inputPhone,?{expires:7,?path:'/seckill'})
//刷新頁(yè)面
window.location.reload();
}else{
//如果輸入的手機(jī)號(hào)碼不合法就提示錯(cuò)誤信息
$('#killPhoneMessage').hide().html('<label?class="label?label-danger">手機(jī)號(hào)碼有誤!</label>').show(300);
}
});
}
//已經(jīng)登錄
//計(jì)時(shí)交互
var?startTime?=?params['startTime'];
var?endTime?=?params['endTime'];
var?seckillId?=?params['seckillId'];
$.get(seckill.URL.now(),?{},?function(result){
if(result?&&?result['success'])?{
var?nowTime?=?result['data'];
//計(jì)時(shí)服務(wù)時(shí)間判斷
countdown(seckillId,nowTime,startTime,endTime);
}else{
console.log('result:'+result);
}
});
}
}
}
2018-03-31
87行就抄錯(cuò)了
2017-11-12
你把html的也貼出來(lái)