发表于: 2017-03-25 23:18:56

3 1382


今天完成的事情:完成了任务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值,以及在多少小时后过期。
// 这里约定expiresHours0时不设定过期时间,即当浏览器关闭时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;
}

//该函数返回名称为namecookie值,如果不存在则返回空
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();
}



返回列表 返回列表
评论

    分享到