摘要: 实例: aaaa 当设置font-size之后,原本垂直居中的三个inline-block的元素,会变的不再垂直居中。解决方案: 1、span{display: inline-block;height: 15px; line-height: 15px; float:left;} 2、.span1{width: 3px;background-color: #ccc; vertical-align: middle;} .span2{background-color: #ccc; font-size: 12px; vertical-align: middl... 阅读全文
posted @ 2013-10-14 21:54 charling 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 在解决search-box的bug时,由于IE8-的数组处理与其它浏览器的不同,而导致报错。示例:arr=[1,3,3,];当数组的最后是一个逗号时: IE9+默认 arr=[1,3,3];也就是arr.length=3; IE8(-)默认 arr=[1,3,3,null];也就是arr.length=4;因此在处理数组逻辑时需要注意。特别是使用数组存储对象,并操作对象时,很容易报undefined错误。 阅读全文
posted @ 2013-10-14 21:52 charling 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 1、编译 当创建一个正则表达式之后,浏览器会对其进行一些列的操作(检测语法、转换成一个本机代码例程(嘿嘿,不明白))。因此在重复多次使用同一个正则表达式时,最好将其赋值给一个变量,从而跳过浏览器的这一系列重复操作。2、设置起始位置 字符串的起始位置,或者由正则表达式的lastIndex属性指定的位置。3、匹配每个正则表达式的字元 扫描目标文本和正则表达式模板,当一个特定的字元匹配失败时,回到起始位置尝试其它可能的路径 4、匹配成功或者失败示例: /h(ello|appy) hippo/.test("hello there, happy hippo"); 此正则表达式匹配he 阅读全文
posted @ 2013-10-13 19:14 charling 阅读(500) 评论(0) 推荐(0) 编辑
摘要: str += "a" + "b"在浏览器中的执行过程: 1、创建临时字符串, 2、将临时字符串设置为“ab”, 3、将临时字符串和str进行连接, 4、将结果赋值给str。str = str + "a" + "b"在浏览器中的执行过程: 1、将"a"连接到str的后面, 2、将"b"连接到str后面。 等同于: str += "a"; str += "b";第二种方法不仅减少了执行的过程,而且避免了临时字符串的产生。在性能上要比第一种提 阅读全文
posted @ 2013-10-13 17:29 charling 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 我们都知道jQuery为ajax请求封装了success和error两个回调方法,其实jQuery也实现了为非ajax请求的普通方法也设计了绑定回调函数的方法。当一个方法需要等待另一个耗时很长的方法完成之后才能执行的时候,我们非常希望可以监听这个耗时的方法。示例:var wait = function(){ var deferred = $.Deferred(); //在函数内部,新建一个Deferred对象 var tasks = function(){ alert("执行完毕!"); deferred.resolve(); // 改变Deferred对象的执... 阅读全文
posted @ 2013-10-13 17:07 charling 阅读(333) 评论(0) 推荐(0) 编辑
摘要: ajax操作的传统写法: $.ajax({ url: url, success: function(){ doWhenSuccess(); }, error: function(){ doWhenError(); } });ajax的链式写法: $.ajax(url) .done(function(){ doWhenSuccess(); }) .fail(function(){ doWhenError(); }); 该写法允许添加多个回调函数:$.ajax(url).done().fail()... 阅读全文
posted @ 2013-10-13 16:14 charling 阅读(569) 评论(0) 推荐(0) 编辑
摘要: 1、控制元素显示和隐藏的方法: 设置元素的 display; 元素不再占据文档位置; 设置元素的visibility; 元素占据文档位置; 设置元素的opacity; 元素占据文档位置;2、关于display的方法: 使用jquery的show、hide方法控制元素的显示; 为元素添加class,并设置其display; 想知道show、hide方法是怎么实现元素的显示和隐藏的。 两个方法哪个性能会更好一点? 阅读全文
posted @ 2013-10-11 22:11 charling 阅读(475) 评论(0) 推荐(0) 编辑
摘要: fis2.0改变了加载策略之后,首屏采用css内联进html的方式,因此首屏的样式会在html加载完成之后,不需要等待css就可以完成渲染。这导致其它部分的内容显示上会很奇怪。项目中出现的问题是: 页面加载时,tab会只展示html中的内容,需要等到css获取到之后才能显示正常。解决的方案是: 先使用行内css,设置style=“visibility:disable”。 在css中通过!important设置visibility:visible,覆盖行内的css。 阅读全文
posted @ 2013-10-11 22:01 charling 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 图片、文字混排: 不管图片和文字的前后位置,都要给 图片 设置 vertical-algin,而不是谁在前面给谁设置。 此方法兼容IE7+ 和其它主流浏览器。IE7-没有测。inline-block块元素、行内元素混排: 同图片和文字的混排,测试IE7+ 和其它主流浏览器。IE7-没有测。两个行内元素: 设置vertical-algin并不会使元素在父元素中居中。vertical-algin: w3c:该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。 但是... 阅读全文
posted @ 2013-10-10 22:13 charling 阅读(2531) 评论(0) 推荐(0) 编辑
摘要: 在项目中,遇到的问题是: 四个tab发送四个不同的请求,当用户连续在不同的按钮之间来回切换时,会出现不清楚那条数据是需要展示的的问题,和当连续点击同一个按钮时,基本同时返回的数据会全都展示出来的问题。解决的方法: 需要展示哪条的问题: 记录最后一次用户点击的tab,对请求回来的数据进行判断,找出与用户最后一次点击的tab相同的那条数据展示出来。 这样做仍然存在的问题是,可能两条以上相同的请求发出,得到两条以上相同的数据,这样就会重复展示出来。 禁止发出两条相同的请求: 通过为tab请求设置不同的标记位的方法,当请求正在进行时,将标记位设置为正在请求。在用户再次点击此tab时,判断该... 阅读全文
posted @ 2013-10-10 21:50 charling 阅读(1327) 评论(0) 推荐(0) 编辑