[知乎]关于选择器优先级的计算

杰拉斯 杰拉斯 | 时间:2013-11-25, Mon | 23,197 views
前端开发 

探寻真理者不可心存傲慢”,再一次给自己敲响警钟。

曾经以为

CSS的优先级

不过如此,虽然自己列不出(主要是不喜欢死记理论)所有CSS选择器的优先级顺序,但我在写代码的时候一定能够写对,所以一直看轻了它,直到今天遇到了这样一个问题:

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>CSS Selectors Level</title>
	<style type="text/css">
	.inner:not(#outer) p{color: blue;}
	.outer .inner p{color: orange;}
	</style>
</head>
<body>
	<div class="outer">
		<p>outer</p>
		<div class="inner">
			<p>inner</p>
		</div>
	</div>
</body>
</html>

猜猜是什么颜色?

(阅读全文…)

[设计模式]JavaScript钩子机制的应用场景与实现

杰拉斯 杰拉斯 | 时间:2013-10-29, Tue | 29,012 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 | 19,904 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;
}

天堂在前方——与所有有梦想、有追求的人共勉

杰拉斯 杰拉斯 | 时间:2013-10-14, Mon | 75,574 views
心路历程 

最近特别忙。

或者说其实是故意让自己这么忙。因为我想给自己寻找一个逆境,我希望在逆境里面得到成长,得到锻炼。

只是最近似乎忙的有些过了,曾经有时候会想东想西甚至躺在床上睡不着觉,但这种思考最近却越来越少了,每天下班洗澡躺在床上,玩着手机就困得睁不开眼。虽然说忙可以锻炼自己的抗压能力,但让自己没有时间去思考人生,还是有点得不偿失。

(阅读全文…)