IE hack

Author : lovecicy

通过4个字符,实现对IE6、7、8的css hack: body {  color: red; /* all browsers, of course */  color : green\9; /* IE8 and below */  *color : yellow; /* IE7 and below */  _color : orange; /* IE6 */ } 当然,你无法保证下一个版本的Chrome或者火狐不会将 ‘*’ 和 ‘_’ 作为新的前缀使用,所以,要视需求决定是否使用这些hack。如果仅仅是为了在IE7下修改一两个属性,不妨用下面的方法: <!–[if lte IE 7]> Make IE7 happy. <![endif]–> 参考:nettuts+

standard

Titanium with genymotion

Author : lovecicy

Titanium是一个由Appcelerator提供的一个IDE,类似于PhoneGap,是一个一用JS编写移动应用的工具。 GenyMotion则是一个Android模拟器,用来代替官方的Android模拟器。 本文要介绍的是如何用Genymotion代替官方的Android模拟器,让Titanium的应用跑在Genymotion上,关于如何安装这两个程序,请参考各自的官网,这里不再赘述: 一、设置ADB环境变量 安装完Android SDK以后,需要设置ADB环境变量,可以在命令行中执行下面的命令,你也可以用窗口化的方式实现: set ANDROID_PLATFORM_TOOLS=”path\to\Android_SDK\sdk\platform-tools” set ANDROID_TOOLS=”path\to\Android_SDK\sdk\tools” set path=%path%;%ANDROID_PLATFORM_TOOLS%;%ANDROID_TOOLS% 设置完以后在命令行中输入:adb。如果显示所有的adb命令则表示设置成功。 二、连接Genymotion Gen[Read More]

standard

Handlebars自定义Helper

Author : lovecicy

关于Handlebars模板的使用,官网给出的文档实在有点凌乱,好在上手容易,看看官方的文档就能入门了。但是对于helper的自定义,官网没有做详细的介绍,后来发现一篇比较好的英文教程,真正可以说从入门到精通,详细介绍了handlebars的使用,有兴趣的可以点这里,这里只翻译其中关于自定义Helper的章节。 ———————————————–分割线——————————————————- Handlebars.js自定义Helpers 除了前面讨论的内建的helper,Handlebars允许我们添加自定义的helper,相对于内建的helper,这更为重要,因为我们可以在自定义的he[Read More]

standard

纯手工安装wordpress

Author : lovecicy

最近又开始折腾wordpress了,当然,比上次升级了,不用xampp了,纯手工安装。 一、软件 首先把需要的软件都下载下来,下面是我下的版本: 1. 中文版的wordpress 3.6.1 link 2. PHP 5.4.21 VC11 x86 Thread Safe link 3. Apache HTTP server 我选了windows安装程序 2.2.25 link 4. MySql 我选了社区版 5.6.14 link 二、安装 1. Apache安装 这个最简单,双击msi程序,一路下一步到底就好了。 修改conf目录下的httpd.conf文件,将DirectoryIndex index.html改为DirectoryIndex index.php index.html 2. PHP安装 解压zip文件,将所有文件放到c:\php\目录下。复制php.ini-production,改为php.ini。 将extension=php_mysql.dll前面的分号删掉。 将extension_dir = ext”前的分号删掉,修改为extension_dir =[Read More]

standard

Javascript的Number对象方法小记

Author : lovecicy

数字是JS的基本数据类型之一,而与之对应的Number类则是其包装对象,提供了一些实用的方法,下面就来看看这些方法。 一、toFixed 语法:NumberObject.toFixed(num) 参数: num 必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。 返回值: 返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。 toFixed方法可以将数字转化为字符串,并且带有指定的小数位数。这个方法很实用,比如我们又这样一个数据:0.12086968544041654,我们仅需要精确到小数点后四位,这时候就可以使用toFixed方法了: 0.12086968544041654.toFixed(4); 它进行4舍5入,返回0.1209。 如果有这样一个数据:0.12[Read More]

standard

Flot之barWidth属性

Author : lovecicy

Flot是一个纯JS的绘图库,它依赖于jQuery,使用简单,美观,兼容性好(Internet Explorer 6+, Chrome, Firefox 2+, Safari 3+ and Opera 9.5+),官方网站请点这里。 Flot提供了画时间序列图的功能,方法很简单,引入时间插件,并修改配置即可。相关配置如下: mode:time, minTickSize: array, timeformat: null or format string, monthNames: null or array of size 12 of strings, dayNames: null or array of size 7 of strings, twelveHourClock: boolean 在需要显示为时间轴的配置对象中配置以上属性即可,mode:time为必选属性。 同时Flot也支持chart显示方式为bar chart,即柱状图。 bar chart有一个barWidth属性,用来配置bar的宽度。 最近在使用Flot画time series bar chart的时候碰到了一个问题[Read More]

standard

Backbone分页简介

Author : lovecicy

先来看看model和collection的parse方法: parse:model.parse(response, options) 每次通过fetch和save方法获取model数据从server返回时,parse方法会被调用。parse方法会收到一个原始的后台返回数据response,parse方法的返回值将被填入model。默认的实现仅返回原始的数据。 假设有这样一个model: var person = Backbone.Model.extend({     defaults:{        name:”,           age:0     } }); server端返回的数据如果是 {name:’James’,age:20} 则获取成功,但是如果返回 {person:{name:’James’,age:20}} 则获取失败,也就是如果要获取server返回的除model以外的数据,使用默认的parse方法是不行的。 这时需要修改parse方法: var person = Backbone.Model.extend({     defaults:{        na[Read More]

standard

开源协议初识

Author : lovecicy

每次看那些jQuery插件的时候,总会发现头上有一段长长的注释,详细的列了插件的作者,版本,软件源,还有一段长长的协议。看的多了,也对这些协议有了些了解,使用之前总会先注意一下,看到MIT协议就知道可以放心用啦,今天发现有个插件用的是用的GPL协议/BSD协议,虽说也是开源协议但是不知道详细条款,还是不太敢用,于是找了些大家熟悉的开源软件协议的介绍。准备使用开源软件的同学们可以参考参考,千万别到收到律师函还不知道怎么回事。 我们常见的开源协议有BSD, GPL, LGPL,MIT和apache Licence vesion 2.0这五个,选开源软件的时候最好也选择这几个,下面我们来看看这五个协议是怎么回事。 GPL,全称 GNU General Public License。它的主要内容为:只要在一个软件中使用(“使用”指类库引用或者修改后的代码) GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这个协议就不太适合商用软件,或者准备使用GPL开源组件的商用项目。基于这个协议的项目,极大的提高了开源软件的数量。上面那个微博的案例,如果作者使用了GPL协议,而使[Read More]

standard

jQuery事件处理方法小记

Author : lovecicy

混乱的事件处理方法理解 一直对于jQuery的多个事件绑定方法的理解很混乱,今天顺便理了一下,做个笔记。 印象中的方法有click,bind,delegate,live,on这几个,对于前3个比较熟悉,因为用的比较多,而后面两个则使用较少,基本不了解。 今天看了下官方的API,感觉click方法与bind方法其实没什么差别,只不过bind统一了绑定事件的名称,而click只是单一的绑定点击事件,对于双击事件则要使用dblclick方法。事实上,click方法其实是bind(‘click’,handler(eventObject) )的简化。 而live和delegate,其实原理是一样的,都可以用于响应动态添加的元素的事件,都通过事件冒泡实现。区别就在于live方法将事件委托给了document对象,而delegate则委托给了当前存在的祖先元素。因此两个方法的写法上也有不同: $(‘a’).live(‘click’,handler(eventObject) ); $(‘ancestor selector’).delegate(‘a’,’click’,handl[Read More]

standard

IE下的select和Date

Author : lovecicy

好久没发文章了,发一篇学习笔记吧。 一、select的问题 首先说个select的问题,如果要获取当前选中的select的option的index,可以用这个方法,对各个浏览器都有效: document.getElementById(‘select id’).selectedIndex 如果用jQuery,则是: $(‘#select id’).prop(‘selectedIndex’) 但是如果要获取当前选中的option的value,情况就就不一样了。如果在option里给每个option都设置了value值,那么在所有浏览器中,都可以这么拿: document.getElementById(‘select id’).value/$(‘#select id’).val() 而如果没有为option设置value值,则我们可能希望拿到当前选中的option的text,这时候用上面的方法,FF和chrome可以正常work,在IE下,jQuery的方式可以拿到value,通过原生的js就会拿到空字符串。 这时候针对IE,需要用下面这种方法: var select = document.[Read More]

standard