1、复选框冒泡事件
昨天在给复选框添加事件的时候,我的复选框是包在li中的,如下:
然后我就给这里面的input添加了这样一个事件:
也就是如果复选框选中了,那么就取消选中;如果没选中,那就给他选中
然后试了一下,发现点击li不点击图下的框框的时候是好使的,可以选中与不选中,但是当点击里面的框框的时候,发现怎么都选不中
然后就去网上搜了一些方法,找到了一种:
//取消复选框原来的点击勾选事件
$('input[type=checkbox]').click(function(event){event.stopPropagation();
});
搞定
原因:当点击复选框那个框框的时候,它会触发复选框原来就有的选中事件,而我给li添加了点击选中事件,复选框又在li里面,所以点击复选框的时候也相当于点击了这个li,也会触发li的点击选中事件,那这两个事件其实都执行了,只是速度很快,点击复选框--选中--触发li点击事件--不选中 ,那点完之后看起来这个复选框没有变化,也就是选不中了,这个也称冒泡事件。
2、ajax发送数据的类型
做小项目的时候,会用到好几次ajax来发送数据,但是发现,不是每次数据都能够成功传到后台,排除其他路径错误等错误,数据的类型也很重要,ajax能够传递的数据类型有三种:
1)、json对象
2)、json数组
3)、string类型的数据
3、js中的数据类型
1).初始类型
Undefined
Null ----------------------------关于null ,它的值是:null,它的typeof的运算结果是:object
Number
String
Boolean
2).引用类型
object (class)
4、js中的size()和length的区别
size():方法
length:属性
如果是获得页面中某个元素的个数,即比如说想要获得所有img的个数,两者的结果是一样的,只不过size()调用的也是length方法,速度会慢一点,且只能在jquery中 使用,不过jquery1.8之后就不用size()了;
如果是获取某个字符串的长度,只能用length属性;
length属性也可以获得某个数组的长度,即arr.length;
**对象是无序的,所以不能用obj.length来计算对象的长度,对象也没有length属性
特别注意:当用ajax传输数据的时候,如果dataType : 'json' ,那么传回的数据如果不为空,那么typeof之后是一个json对象,没有length属 性,console.log(data.length) 结果是undefined;如果传回的数据是空的,那么typeof 之后是 [ ],这是浏览器自动解析的,因为后台josn_encode($arr)中的 $arr也是一个空数组,即[ ],json_encode之后也还是[ ],然后浏览器在解析console.log([ ] )的时候,就把它自动解析成数组,那么这时候可以用 data.length,即[ ].length,有length属性,结果为0
5、在js中动态append大量节点的时候,所需的时间是很长的,解决办法:
1)先将文档存储到str中,等组合好了再一起append
2)上一条方法可能在节点很多的时候还是不够快,可以将这些节点存储到数组中,然后通过一个函数将数组转化成字符串再append,速度更快(还没试过,有时间试一 下)
6、css的浮动事件