那个 j 从当前代码来说是可以没有的,之所以有这个 j 是因为这段代码写的很烂。
aid 是当前帖子的id
saveid 是已经顶过帖子的id,以逗号隔开。例如:1,2,3,4,5
他想通过cookie记录当前用户已经顶过帖子的id,然后根据aid来判断是否顶过了,顶过了就提示,否则就顶贴,并把当前aid加入到cookie里面。
他这个如果不在digg_ajax.php里面做是否顶过贴的判断,用户清除了cookie这代码会出bug。
这种东西后端也必须判断。
从代码上来看,应该不能取消顶贴,否则他这个就有bug了,中间的continue之类的东西写的太烂了导致你看不懂,我给你改进一下代码,你就懂了,其实根本不需要那么复杂
function postDigg(ftype, aid) {
var taget_obj = document.getElementById('newdigg');
var saveid = GetCookie('diggid');
//如果saveid是null 则把他变为一个空字符串
saveid = typeof saveid == "string" ? saveid : "";
var saveids = saveid.split(',');
for(var i = saveids.length - 1; i >= 0; i--) {
if(saveids[i] == aid) {
//如果cookie存的id里面有,说明已经赞过了
alert("您已经顶过该帖,请不要重复顶帖 !");
//return就可以退出方法了
return;
}
}
//将新的aid加入到saveids里面
saveids.push(aid);
//将新的saveid写入cookie
SetCookie('diggid', saveids.join(","), 1);
myajax = new DedeAjax(taget_obj, false, false, '', '', '');
var url = "{dede:global.cfg_phpurl/}/digg_ajax.php?action=" + ftype + "&id=" + aid;
myajax.SendGet2(url);
}