发表于: 2016-09-08 00:19:18

4 2066


今天完成的事:

任务4

1.第一天的杀人和投票阶段

(杀人报告页面页脚有样式问题,明天再调)


明天计划的事:

1.继续任务4


收获:

1.element.id 更改对象ID(带变量的ID方便实用)

2.htmlFor用于更改label的for属性

3.安卓系统的开发者选项里有个显示布局边界的功能,可以用来判断一个APP是原生的还是web的。

(果不其然,修真院APP和桌游精灵APP都是webapp)

4.函数运行时会先执行所有声明,再从头开始执行语句。

(var,function之类,不包括子函数内的语句,也不会执行声明语句里的赋值语句,仅只声明

比如

var a=0;

function b(){

    console.log(a);

    var a=1;

    console.log(a);

}

第一个log将会输出undefined而不是0,第二个log输出1

同理对于全局声明也有类似的特性


5.“不管何时,checked属性的值发生变化的时候,onclick事件句柄就会触发(也可能触发 onchange 事件句柄)。”

(W3School原文,实验结果是onchange也有效)

6.display:none是看不见也不占位置,visibility:hidden是看不见但是占位置

7.空数组的值既非null也非undefined而是[],要注意用作条件判断时应该采用.length==0来判断

但是空数组里的每个位置是undefined,比如空数组的array[0]就是undefined)


遇到的问题:

1.如何给用JS生成的input添加事件,用于激活函数

(element.事件=函数;只能分配一个函数,addEventListener则可以分配多个函数)

添加事件语句要放在输出之后才生效?(比如appendChild之后)关于这点还没有详细验证

(兼容性问题参考http://www.cnblogs.com/Rosefxd/p/4921330.html


2.给对象添加事件后出现加载页面后自动触发事件的情况,并且手动触发事件是完全无效

a.onclick=b(); //错误写法

a.onclick=b; //正确写法


a.addEventListener("click",b()); //错误写法

a.addEventListener("click",b); //正确写法


第一种写法是直接执行一遍b函数

第二种写法才是事件触发时运行b函数

但是如果这里是匿名函数,就会写成function(){}了

因为b()相当于function(){}()

真是挺奇葩的


得说,只有在HTML里写的时候才会写成onclick=b();这种形式。

JS里带了括号的意思是,执行该函数并返回值

也就是说a.onclick=b();的意思是执行b函数一次,返回值,赋予a.onclick,而不是绑定函数与事件


3.好了,新问题又诞生了,b函数是有参数的怎么办

(本来想用参数来表示被选中的input是第几个的,想想直接遍历一下checked状态就行了

(刚发现用匿名函数就行了,其实上面就已经说出结论了,a.onclick=function(x){})


4.如何用JS控制input的disabled属性

(element.disabled=true,好吧这个有点弱智了)





返回列表 返回列表
评论

    分享到