JsCss笔记
1. &= 不应该在 Bool 型变量中使用。
a &= b 对于Js来说是: a = a & b ; a 本来是 bool , &= 之后就变成了 Int。
2. javascript 中,Dom的宽高值,在 父容器隐藏时 为0
如果父容器呈隐藏状态,则父容器里的元素 offsetHeight 为 0 , $.fn.height() 也为0
3. Css
background 后面的参数,太混乱了。涵义: http://www.w3school.com.cn/cssref/pr_background.asp
4. JavaScript 方法应该处理所有类型参数
没有类型定义及检查,所以 $.trim( obj ) obj 可以是任何类型, 如: int 时,就会出错。 在 $.trim 方法应该先检查是否是 string 类型,非string 类型, 返回值即可。
5. 一道Js小题
var o = {} ; o["abc"] = {msg:"OK"}; var b = o["abc"] ; b = {}; o["abc"] 的值是多少?
答案:与C#的理解不同, 上面会输出 {msg:"OK"}
6.jQuery的帮助文档中没有 click 的参数定义
事实上, 它只有一个参数 event . 可以用来阻止事件冒泡.
7. Div + CSS 代表主流,但并不代码所有.
在 查询框布局上,简单易操作.依然有它的优势.
8. 问题: 如何在对象的 click 执行之前,和 完成之后进行拦截?
此问题为了完成 单次点击后禁用按钮, 点击完成后, 启用按钮. 或Ajax返回后,启用按钮.
9. Chrome 的 margin 不会引起重排 reflow. 而其它浏览器可以.
如何显式重排? http://varnow.org/?p=232
另外, Chrome 下 发送 XmlHttpRequest , 该对象有两个, 在发送前, 是 XMLHttpRequestProgressEvent , 里面的 target 才是 XmlHttpRequestEvent .!!! (之前以为是Chrome 的Bug.) 它的 type 是 d.type == "readystatechange" , 可用此属性过滤掉.
10. 浏览器Bug
IE的Bug:
测试在使用 QT 进行自动化测试时. 发现每次请求的页面都是第一次请求的页面, 但是每次却都执行了服务器端方法. 奇怪的发现了如下流程:
客户端发出 Http Get -> 服务器端执行 并返回Html -> IE 接收后, 使用第一次请求的缓存页面.
background-size 的Bug:
background-size 写到 background属性之后。
11. Js 中的 Slice 函数,帮助是错误的.
如:http://www.webdm.cn/onlinebook/javascript/html/jsmthslicestring.htm
"12345".slice(0) ; 返回 12345
"12345".slice(0,-1); 返回 1234
返回的是不同的结果 . 帮助文档的说法是错误的.(帮助文档说返回相同的结果.)
substr(start,[length]) , substring(start,[end]); 参见: http://www.cnblogs.com/wz327/archive/2010/04/11/1709433.html
12. jQuery的live 方法
live 方法不支持blur,focus,mouseenter,mouseleave,change,submit , 用 liveQuery 插件。介绍:址:http://hi.baidu.com/fishwodi/blog/item/a22861a66b36e3fc9052eee2.html
后记: 在使用前,需要检测一下是否有内存漏洞啥的,忘的它有额外的执行代码。
13. 有些元素是不能自闭合的
如果自闭合,会出现未知的,且莫名的错误.如 Div,Script ,等. 一定要有结束标记.
14. 尽量避免 !important
如果需要升级Css的优先级,可以比较完整的路径:
html .inlineChild > *{
}
15.工具集合
http://www.wufangbo.com/web-development-tools/
作者:NewSea 出处:http://newsea.cnblogs.com/
QQ,MSN:iamnewsea@hotmail.com 如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。 |