杰拉斯的博客
[设计模式]JavaScript钩子机制的应用场景与实现
杰拉斯 | 时间:2013-10-29, Tue | 32,062 views前端开发
当我们面对比较复杂的前端项目时,我们经常会采用模块化的方式来对JavaScript代码进行解耦,以方便对代码的管理和维护,以下是一个简单的立即执行函数实现的模块化例子:
var Common = (function(){ var func = function(){ // 全局公用方法 } return { func : func } })(); var ModuleA = (function(){ var _count = 1; var init = function(){ // 独立模块逻辑 } var getCount = function(){ return _count; } return { init : init, getCount : getCount } })();
模块只对外暴露外部需要的接口,而外部模块不需要关心其内部的运行逻辑,只需要知道调用接口的方式和返回结果,这样就实现了模块的“低耦合,高内聚”。
看起来很美好,可是当项目的逻辑变的越来越复杂时,比如A模块中某个针对全局公用的逻辑,可能在B模块的某种特定情况下需要进行一些额外的逻辑操作,该怎么办呢?
[小积累]不同浏览器中阻止默认事件、冒泡的方法
杰拉斯 | 时间:2013-10-21, Mon | 20,764 views前端开发
IE:
window.event.cancelBubble = true; // 阻止事件冒泡 window.event.returnValue = false; // 阻止事件的默认行为
其它现代浏览器:
event.stopPropagation(); // 阻止事件冒泡 event.preventDefault(); // 阻止事件的默认行为
兼容写法:
// 阻止事件冒泡 if(event.stopPropagation){ event.stopPropagation(); }else{ window.event.cancelBubble = true; } // 阻止事件的默认行为 if(event.preventDefault){ event.preventDefault(); }else{ window.event.returnValue = false; }
[纯耍帅] 纯CSS、兼容IE7+、宽度自适应、无限级导航菜单
杰拉斯 | 时间:2013-10-15, Tue | 19,187 views前端开发
先来个Demo:
http://www.clanfei.com/demos/nav/nav.html
好吧,我承认,我有点标题党了,IE7的兼容并不是特别好,当鼠标离开某个导航再进入时,会留下上一次子菜单的残影(写的好像玄幻小说似的=。=)
不过纯属研究,O(∩_∩)O哈哈~
天堂在前方——与所有有梦想、有追求的人共勉
杰拉斯 | 时间:2013-10-14, Mon | 78,924 views心路历程
最近特别忙。
或者说其实是故意让自己这么忙。因为我想给自己寻找一个逆境,我希望在逆境里面得到成长,得到锻炼。
只是最近似乎忙的有些过了,曾经有时候会想东想西甚至躺在床上睡不着觉,但这种思考最近却越来越少了,每天下班洗澡躺在床上,玩着手机就困得睁不开眼。虽然说忙可以锻炼自己的抗压能力,但让自己没有时间去思考人生,还是有点得不偿失。
[小技巧]当字段名与MySQL保留字冲突的解决办法
杰拉斯 | 时间:2013-10-07, Mon | 22,012 views后台技术
我们知道通常的SQL查询语句是这么写的:
select col from table;
这当然没问题,但如果字段名是“from”呢?
select from from table;
若真的这么写,必然出错,当字段名与MySQL保留字冲突时,可以用字符“`”将字段名括起来:
select `from` from table;
搞定。