发表于: 2017-02-26 23:05:22

1 1346


今天做的事情: 基本完成了JS的任务1,九宫格,代码上传到了GitHub

明天要做的事: 提交任务时,要求部署到服务器.这个不知道怎么弄,明天看一下. GitHub也要更熟悉下.

遇到的问题:   今天遇到了一大堆问题,总结如下:                        

一、花了一些时间修复之前onclick事件的问题:

       1. onclick绑定了alert事件,但是并没有在点击时触发弹窗,而是一调试(在浏览器中打开页面)就会弹窗.

       原因: 代码写成了 onclick=alert(“xxxx”); 这样的话,并不是把onclick绑定alert这个行为,而是把alert这个行为的值赋给了onclick(虽然,我不知道alert(“xxxx”)的值算啥):

       在这个赋值过程中,会直接执行alert(“xxxx”);然后就弹窗了.

       仔细想了想,相当于代码 a=3+4; 这个赋值时,会执行”3+4”,得到一个结果. 不过3+4在执行的时候, 不会给直观的反馈.

       而alert(“xxxx”)执行的时候,会有一个弹窗,比较显眼.

       2. 关于a = function; 和a = function();

       以上onclick事件的问题,其实是函数表达式的问题. a=function是让a调用funcion这个函数,a=function()是把函数function执行的结果赋值给a.


二、 在“获取3个随机的方块元素”时,遇到了好多坑

        1. 我的思路是首先获得所有9个方块元素,然后从里面随机出三个。

            a. 因为我在html里,把9个方块元素分成了3组, 每组各包含在一个div元素里. 

               因此我想依次获得这三个div元素的子元素(childNodes), 得到3个子元素数组,然后把这3个数组拼在一起,就获得了9个方块元素的数组.

            b. 数组拼在一起的方法,打算用array.concat(array1,array2...)

           然而, element.childNodes()这玩意返回的不是数组,而是节点列表,不能直接用array.push()或者array.concat(), 这个地方卡了很久也不知道为什么, 真是坑啊. 搜了半天才弄明白.

            之后, 新建立一个数组,然后把节点列表里的元素push到新数组里,才得到了一个可以操作的方块元素集合.

           c. 得到这个可以操作的9个方块元素的集合之后,我要随机获得其中的3个. 这个直接用随机数,获取一个,然后用array.slice把它删掉,在数组剩下的元素里再获取一个, 依次类推,一共获得3个元素.

             极为坑爹的是, 这里用随机数,我是打算向下取整的,因为向上取会超出边界. 但我用了Math.ceil()而不是Math.floor(), 结果这个地方又卡了半个小时,才找出原因.  另外array.slice()返回的是被删除的元素,而不是删除元素后的数组. 这个也弄了个小错误,后来改正了.


三、 给元素设置“background-color”属性

        本来以为可以用setAttribute("background-color","XXXX")这种形式,结果无效,后来发现这个格式是不对的!

        应该是setAttribute("style","background-color:xxxx");

        然而这个貌似不能传颜色参数, 因此最终用了element.style.backgroundColor=xxx去设置.


四、部署代码到服务器

       时间不够了,明天得上班。明天再看下怎么弄。




返回列表 返回列表
评论

    分享到