2007年4月11日	
		
	
			
				
				
					 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>   
				 
				
			 
	
			
		 
	
	
		
	
	2007年3月2日	
		
	
	
		
	
	2007年2月28日	
		
	
	
		
	
	2007年2月25日	
		
	
			
				
				
					
		等级高的规则会覆盖掉等级低的规则。 具有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 | 
						 
				
		 
				 
				
			 
	
			
		 
	
	
		
	
	2007年2月24日	
		
	
	
		
	
	2007年2月23日	
		
	
	
		
	
	2007年2月22日	
		
	
			
				
				
					
		
				 1
				 
				var
				 net 
				=
				 
				new
				 Object();//命名空间,防止全局变量的冲突 
				 2
				
						 net.READY_STATE_UNINITIALIZED 
				=
				 
				0
				; 
				 3
				
						 
						 
						 
				
				 4
				
						 net.ContentLoader 
				=
				 
				function
				(url, onload, onerror)
				
						{ 
						 6
						
								    
						this
						.url 
						=
						 url; 
						 7
						
								    
						this
						.req 
						=
						 
						null
						; 
						 8
						
								    
						this
						.onload 
						=
						 onload;//保存是方法名 
						 9
						
								    
						this
						.onerror 
						=
						 (onerror) 
						?
						 onerror : 
						this
						.defaultError; 
						10
						
								    
						this
						.loadXMLDoc(url); 
						11
						
								 }
				
				
						 
				
				12
				
						 
						 net.ContentLoader.prototype 
				=
				 
				
						{ 
						13
						
								    loadXMLDoc:
						function
						(url)
						
								{ 
								15
								
										         
								16
								
										       
								try
								
										{ 
										                   var
										 loader 
										=
										 
										this
										;//重点!loader为new出来的对象。 
										                  this
										.req.onreadystatechange 
										=
										 
										function
										()
										
												{ 
												20
												
														            loader.onReadyState.call(loader);//重点! 因为loader为new出来的对象,所以它可以调用对象内部的属性或方法。应该可以像在catch方法内一样使用this调用原型内的方法。 
												21
												
														              }
										
										
												 
										
										23
										
												           }
								
								
										 
								
								24
								
										       
								catch
								(err)
								
										{ 
										26
										
												           
										this
										.onerror.call(
										this
										);//同上 
										27
										
												       }
								
								
										 
								
								28
								
										    }
						
						
								 
						
						29
						
								    onReadyState:
						function
						()
						
								{ 
								31
								
										       
								var
								 req 
								=
								 
								this
								.req; 
								32
								
										       
								var
								 ready 
								=
								 req.readyState; 
								33
								
										         
								34
								
										       
								this
								.onload.call(
								this
								);//this.onload为一个方法名。这样是调用new出来的对象的回调函数。 
								35
								
										         
								36
								
										       
								this
								.onerror.call(
								this
								); 
								37
								
										    }
						
						
								 
						
						38
						
								    defaultError:
						function
						()
						
								{ 
								40
								
										       alert( ); 
								41
								
										    }
						
						
								 
						
						42
						
								 }
  //这样做,可以把所有的状态都保存在对象内部,而不是设置一个全局变量。
				
		 
				 
				
			 
	
			
		 
	
	
		
	
	2007年2月16日	
		
	
			
				
				
					1.form元素是默认有padding的。 2.tbody在ie下没有innerHTML属性。 
				 
				
			 
	
			
		 
	
	
		
	
	2007年2月14日	
		
	
			
				
				
					1.z-index只对于position:absolute情况下起作用,对于没有设置position:absolute的div其z-index永远为0 2.未设定z-index的div,按照声明的顺序层叠。后声明的盖住先声明的。 3.未设定z-index的div,如果属于父子关系的,子div盖住父div。 
				 
				
			 
	
		  
	
			
				
				
					
		
		
				
				1 function a(b) 2 { 3     b(); 4 } 5 a(function(){alert("1");}); 我理解,好像调用a方法时候,内部的函数相当于一个匿名的变量,这个变量保存了当前内部函数的引用。
				  
				
			 
	
			
		 
	
	
				
			 | 
		 
		 
	 | 
	
		
		
			| 
			
			 
随笔:11
文章:0
评论:0
引用:0 
			
			
				
	 |  | 日 | 一 | 二 | 三 | 四 | 五 | 六 | 
|---|
 | 26 | 27 | 28 | 29 | 30 | 31 | 1 |  | 2 | 3 | 4 | 5 | 6 | 7 | 8 |  | 9 | 10 | 11 | 12 | 13 | 14 | 15 |  | 16 | 17 | 18 | 19 | 20 | 21 | 22 |  | 23 | 24 | 25 | 26 | 27 | 28 | 29 |  | 30 | 1 | 2 | 3 | 4 | 5 | 6 |  
  | 
			 
			 
				
			
常用链接
留言簿(2)
		随笔分类
		
				
			
	
		随笔档案
		
				
			
	
搜索
最新评论
	 
阅读排行榜
评论排行榜
			
			 
			
			 | 
		 
		 
	 |