最近做了个简单的搜索历史记录功能,利用了js的cookie。废话不多说,代码如下:
<script type="text/javascript">
var suggestObj = {};
suggestObj.tips = {
tips01: ''
};
suggestObj.searchData = [];
suggestObj.events = {
closedAd: function () {
document.querySelectorAll("#closedAdId")[0].addEventListener("touchend", function () {
$(".ads").hide();
});
},
// 输入内容请求ajax并在页面显示
keydownText: function () {
document.getElementById("searchInput").addEventListener('input', function () {
var inputVal = $("#searchInput").val();
var carList = $(".searchCarList");
var carListLi = '';
var url = "/suggestmapps.php?";
$.ajax({
type: "GET",
url: url,
dataType: "jsonp",
data: {q: inputVal},
async: true,
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
jsonpCallback: "getSuggestInfo",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
success: function (data) {
if (data.code == 1) {
for (var i = 0; i < data.info.length; i++) {
carListLi += '<li><a href="' + data.info[i].url + '" οnclick="suggestObj.events.saveSearchInfo(this)"><span>车系页>></span><em>' + data.info[i].name + '</em></a></li>';
}
carList.html(carListLi);
$("#historyRecord h1").hide();
$("#historyRecord .clear").hide();
}
},
error: function () {
}
});
});
},
saveSearchInfo: function (t) {
var val = $(t).children("em").html();
val = val + ':::' + t.href;
var valIndex = suggestObj.searchData.indexOf(val);
if (valIndex == -1) {
suggestObj.searchData.unshift(val);
} else {
suggestObj.searchData.splice(valIndex, 1);
suggestObj.searchData.unshift(val);
}
if (suggestObj.searchData.length > 20) {
suggestObj.searchData.length = 20;
}
var suggestName_Url = suggestObj.searchData.join('@@@');
var suggestNameInfo = $.cookie('suggestNameUrl');
if (suggestNameInfo) {
suggestName_Url += '@@@' + suggestNameInfo;
}
var eday = new Date();
eday.setTime(eday.getTime() + (3600 * 24 * 3600000));
$.cookie('suggestNameUrl', suggestName_Url, {
path: '/',
domain: 'xxx.com',
expires: eday
});
},
getInputFocus: function () {
var currentCookie = $.cookie('suggestNameUrl');
var historyHtml = $(".searchCarList");
var historyHtmlLi = "";
alert(currentCookie);
if ( currentCookie != null && typeof currentCookie != undefined) {
var strSplit = currentCookie.split("@@@"); //字符分割
for (var i = 0; i < strSplit.length; i++) {
if(i>5) break;
var historyHtmlObg = strSplit[i].split(":::");
historyHtmlLi += '<li><a href="' + historyHtmlObg[1] + '"><span>车系页>></span><em>' + historyHtmlObg[0] + '</em></a></li>';
}
historyHtml.html(historyHtmlLi);
$("#historyRecord h1").show();
$("#historyRecord .clear").css("display", "block");
}
},
delCookie: function () {
var date=new Date();
date.setTime(date.getTime()-10000);
$.cookie('suggestNameUrl','',{path: '/', domain: 'xxx.com', expires:date});
},
onClickBtn: function () {
document.querySelectorAll(".clear")[0].addEventListener("click", function () {
$("#historyRecord").hide();
suggestObj.events.delCookie();
})
}
};
//调用
suggestObj.events.closedAd();
suggestObj.events.keydownText();
suggestObj.events.onClickBtn();
</script>