2007年2月25日
1 1. <script> 2 2. 3 3. function Test(){ 4 4. this.say1 = function(s){ 5 5. alert(s); 6 6. } 7 7. this.say2 = function(s){ 8 8. alert(s); 9 9. } 10 10. } 11 11. 12 12. function actsAsAspect(object) { 13 13. object.yield = null; 14 14. object.rv = { }; 15 15. object.before = function(method, f) { 16 16. var original = eval("this." + method); 17 17. this[method] = function() { 18 18. f.apply(this, arguments); 19 19. return original.apply(this, arguments); 20 20. }; 21 21. }; 22 22. object.after = function(method, f) { 23 23. var original = eval("this." + method); 24 24. this[method] = function() { 25 25. this.rv[method] = original.apply(this, arguments); 26 26. return f.apply(this, arguments); 27 27. } 28 28. }; 29 29. object.around = function(method, f) { 30 30. var original = eval("this." + method); 31 31. this[method] = function() { 32 32. this.yield = original; 33 33. return f.apply(this, arguments); 34 34. } 35 35. }; 36 36. } 37 37. 38 38. function beforeHander(s){ 39 39. alert("aspect said:"); 40 40. } 41 41. function afterHander(s){ 42 42. alert("said by aspect"); 43 43. } 44 44. 45 45. var t = new Test(); 46 46. actsAsAspect(t); 47 47. t.before("say1",beforeHander); 48 48. t.after("say2",afterHander); 49 49. 50 50. test = function(){ 51 51. t.say1("hello1"); 52 52. t.say2("hello2"); 53 53. } 54 54. test(); 55 55. </script>
等级高的规则会覆盖掉等级低的规则。 具有style属性编写的规则具有最高的等级。具有ID选择器的规则比没有ID选择器的规则等级高。具有类选择器的规则比只有类型选择器的规则等级高。如果两个规则的等级相同,后定义的覆盖之前定义的规则。 a->style样式的规则,如果有a=1 b->ID选择器的总和 c->类,伪类和属性选择器的总和 d->类型选择器和伪元素选择器的总和 以style----id------class------element的顺序排列。
选择器 |
特殊性a~d |
特殊性总和 |
style="" |
1,0,0,0 |
1000 |
#x #y{} |
0,2,0,0 |
200 |
#x .z{} |
0,1,1,0 |
110 |
div #x{} |
0,1,0,1 |
101 |
#x{} |
0,1,0,0 |
100 |
p .z .m{} |
0,0,2,1 |
21 |
p .z{} |
0,0,1,1 |
11 |
div p{} |
0,0,0,2 |
2 |
p{} |
0,0,0,1 |
1 |
|
|
随笔:11
文章:0
评论:0
引用:0
常用链接
留言簿(2)
随笔分类
随笔档案
搜索
最新评论
阅读排行榜
评论排行榜
|
|