发表于: 2017-04-06 20:41:21
1 1304
今天完成的事情:
开始写法官台本的js,找了很多有限状态机的资料看,但发现大多都是一样的,而且讲的也不详细,看得半懂不懂的,有点懵。后面听了一下北京的小课堂分享,才知道原来是这么回事。于是就开始在页面上写了。先给定义了一个变量,变量里面放了一个初始状态;一个改变规则和状态的函数;一个事件,用来调用包含不同的状态规则的函数。然后在变量外给你需要操作的元素定义一个事件,并绑定状态机,这样就做好了。研究了好久才弄明白。
明天计划的事情:
继续写任务4的js,把页面之间进行传值逻辑弄清楚,感觉这个任务要做好久啊。
遇到的问题:
1、今天终于理解了之前的一个大坑,在写好变量跟click事件之后,又碰到了一个问题,一共有4个列表项把它1天当中的4个状态,我给列表项li1添加了click事件,使他的样式改变,然后其他几个列表项也分别添加了一个click事件,这个地方就出现了一个bug,点击之前的已经点击过得li1,li2就改变了样式,其他的也是,它们的点击事件之间没有限制条件,但是逻辑是要点击了一项之后只能点击下一项才起作用,且点击已点击过的和后面两项都会提示对话框请按顺序选择,于是给每个点击事件绑定状态机里添加了一个判断,当当前状态等于每个按钮要触发的状态,才会绑定状态机,否则会出现对话框。
2、刚解决了有限状态机这个大坑,弄完之后就发现又碰到一个更大的坑了,那就是如何保存这个已改变的数据,发现如果数据在法官台本页面定义然后保存到本地的localstorage,当杀手杀人后返回法官台本页面,之前的数据就没了,然后只能让后面需要保存在本地进行页面之间传值得变量、数组都在之前的页面就定义好,因为后面不会返回之前的页面进行操作。
收获:
弄懂了有限状态机,写了出来,能控制列表项的改变。
评论