发表于: 2019-11-03 23:17:34
2 935
今天完成的事情:
1.完善杀手杀人界面的逻辑
明天计划的事情:
1.继续任务四。把逻辑都写好。
遇到的问题和收获:
1.杀手杀人的界面,想将人员的存活情况和点击后死亡情况保存进数组。
首先声明一个对象,之后把数组中的元素转化对应为对象。
function $player(role, state) {
this.role = role;
this.state = state;
}
for (var i = 0; i < (killerWaterNum.length); i++) {
if (killerWaterNum[i] === "水民") {
killerWaterNum[i] = new $player("水民", "alive");
} else {
killerWaterNum[i] = new $player("杀手", "alive");
}
console.log(killerWaterNum[i]);
2.写出点击盒子对应的状态。点击后添加类名“death”,设置为更改背景色。然后每次点击前再清除背景色,保证点击其它盒子时,此盒子颜色消失。获取到盒子的当前下标后,当点击到杀手盒子,会弹出提示,此时杀手盒子不变色。水民的盒子点击后会写进一个死亡状态。 至于这个状态怎么用出来,后面再研究下。。。
$(".box-people").click(function () {
var word = $(".word");
word.removeClass("death");//每次点击前清除背景颜色
$(".box-hidden").hide();//点击前先隐藏掉刀子,避免点击另一个盒子后,前一个盒子一直显示.
$(this).children(".box-hidden").show();//获取当前对象下所有子元素.box-hidden并显示
var dieNum = $(this).index();//获取下标
//按下确定按钮后添加death样式,人物框变色。
if (killerWaterNum[dieNum].role === "杀手") {
alert("自己人,大哥!")
} else {
word.eq(dieNum).addClass("death");
killerWaterNum[dieNum].state = "dead";
}
});
3.了解到了for循环和for in。for...in 语句用于对数组或者对象的属性进行循环操作。for循环是对数组的元素进行循环,而不能引用于非数组对象。
for
(int 变量初始值;条件;递增或递减){
在此执行代码
}
for
(变量
in
对象)
{
在此执行代码
}
例如
for (var i = 0; i < (killerWaterNum.length); i++)
也可以写成
for (var i in killerWaterNum.length)
不过不太会用,尝试了改成这种,后面的数组元素转化为对象会有警告。
3.难点在于理解传参。怎么把当前页面的数据保存并传递出去。怎样判断当前界面的状态,并作出反应。
评论