发表于: 2017-03-25 23:18:56
3 1381
今天完成的事情:完成了任务3
明天计划的事情:学习对象原型,开始任务4
遇到的问题:
一、使用cookie时遇到了个问题:同一文件夹下的cookie才能互相获取,不同文件夹的cookie不能互相获取。
解决办法:
为了控制cookie可以访问的目录,需要使用path参数设置cookie,语法如下:
document.cookie="name=value; path=cookieDir";
其中cookieDir表示可访问cookie的目录。
例如: document.cookie="userId=320; path=/shop";
就表示当前cookie仅能在shop目录下使用。
如果要使cookie在整个网站下可用,可以将cookie_dir指定为根目录,例如:
document.cookie="userId=320; path=/";
二、页面逻辑,这个一定要理顺。不然都不知道要实现什么效果,那还怎么写代码
页面逻辑主要是这些:
1.在任务二的页面下,配置好身份,点击去发牌,跳转到任务3的页面。
2.任务三的页面,有两种状态,正面和反面。
正面状态显示的是玩家的身份信息。反面状态是用来隔离正面状态的, 用于玩家传递身份信息时,来隐藏其他玩家的信息
解释不清楚,反正就是这个效果:
具体细节:
①进入任务三的页面,一开始是反面,点击下面的按钮变为正面。再次点击继续以反面->正面的方式显示后面玩家的身份信息。
②白色圆圈:正面和反面时,都是当前玩家的序号
③main区域的内容:反面时,都是一个“请翻牌”的图片;正面时:当前玩家的身份信息,和一个小提示
④footer中的按钮:
反面时,“请查看xx号的身份”,xx是当前玩家序号;
正面时,“隐藏并传递给xx号 ”,xx是下一位玩家的序号;
⑤值得注意的是,当最后一名玩家查看身份后(即最后一个正面),按钮的文本内容变为”法官查看“,点击后跳转为法官界面。
三、实现的思路
首先,正面反面的切换都由一个页面完成。
如何判断玩家序号和正反面:
我使用的是一个长度为2的数组实现:
var counter = [0, false] //counter[0]:用来记录当前查看身份的玩家编号,counter[1]:身份显示的正反面(0反面,1正面)
(其实通过一个number类型的变量也能实现:通过通过奇数偶数来判断正反,除二取整判断序号)
四、jq获取的节点不能使用js的dom方法
原因:jq获取的节点不是dom节点,而是jq对象
很好证明:
五、jq用的还是不熟,用起来不习惯
收获:把别人的设置cookie的函数修改了一下,方便使用:
改动: 1.将路径设置为path=/; 这样整个网站都可以使用cookie
2.之前的cookie添加函数用escape()编码cookie的值,但是获取cookie函数没有用unescape()解码,
这里添加了解码。
/该函数接收3个参数:cookie名称,cookie值,以及在多少小时后过期。
// 这里约定expiresHours为0时不设定过期时间,即当浏览器关闭时cookie自动消失。
function addCookie(name, value, expiresHours) {
var cookieString = name + "=" + escape(value);
//判断是否设置过期时间
if (expiresHours > 0) {
var date = new Date();
date.setTime(date.getTime + expiresHours * 3600 * 1000);
cookieString = cookieString + ";path=/" + "; expires=" + date.toUTCString();
}
document.cookie = cookieString;
}
//该函数返回名称为name的cookie值,如果不存在则返回空
function getCookie(name) {
var strCookie = document.cookie;
var arrCookie = strCookie.split("; ");
for (var i = 0; i < arrCookie.length; i++) {
var arr = arrCookie[i].split("=");
if (arr[0] == name)return unescape(arr[1]);
}
return "";
}
//删除指定名称的cookie
function deleteCookie(name) {
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=v; expires=" + date.toUTCString();
}
评论