发表于: 2017-05-17 23:29:08
1 1041
今天完成的任务:
写完task4大部分逻辑。
明天计划的事情:
写完task4,并仔细改善界面细节。
遇到的问题:
暂无。
收获:
1,做task4用了许多jq遍历方法,真切感觉到了jq的强大,js没有这么丰富的遍历方法。
jq的遍历很像css的选择器,js的事件也像css的一些伪类,不过前者要比css强大的多,css的选择器局限很大,伪类可实现的动作也很少,用jq就不用担心选择不到元素的问题了。
2,jq作为js的的库,功能大致相同,不过有一些经常使用的方法有些差异:
document.getElementsByClassName("p")
$(".p")
同样作为数组,js不能直接操作,只能操作数组中的项,jq可以。
document.getElementsByClassName("p")[0]
$(".p").eq(0)
要操作数组中的项,两者方法不同,js直接加上数组的下标即可,同样的方法在jq上会报错,jq需要用到eq()特有的eq方法。
document.getElementsByClassName("p")[0].onclick=function(){};
$(".p").eq(0).click(function(){});
两者操作事件时,js的事件名有on,jq则去掉了on,js以等式形式为事件添加匿名函数,jq则把函数作为事件的参数写在括号中。
3,jq中较相似的方法:
hide()和fadeOut()以及两者对应的方法:
hide隐藏的效果是从下至上或从右下到左上的慢慢折叠缩小,而fadeOut的淡出效果是整体淡化直至消失。
还有一个slideUp()方法,三者隐藏元素的方式实质上都是通过设置元素display:none。元素被隐藏后其原来所在的空间也消失。因此若先将元素设置为display:none,也可用三者对应的方法使元素重现。
4,task4切换页面时,每个页面需要设置为何种状态都要根据之前页面的数据来判断,即task4中的重点在于设置和传递值。
我在法官日记页面设置了一个对象,开始进行值的传递:
var data={
path:0,
click:[],
kill:[],
vote:[],
person:[],
chosen:"",
num:""
};
data.path += 1;
data.day=Math.ceil(data.path / 4);
sessionStorage.setItem("data",JSON.stringify(data));
对象中有许多空属性,我先声明了属性值的类型,这样就不用在之后的页面中再声明变量了,有的值需要使用方法,只能写在字符字面量的外面。用sessionstorage和json结合存取,在每个页面根据需要存取值到对象中。
data.path属性作为导航,每经过一个页面增一。
评论