代码改变世界

JS动态赋方法时如何传值

2011-11-10 17:37  三皮开发时  阅读(511)  评论(0编辑  收藏  举报
Html代码  收藏代码
  1. <body>  
  2. <input id="certid" type="text" value="123456" >  
  3. <input id="btn" type="button" value="button" onclick="">  
  4. </body>  

Javascript代码  收藏代码
  1.    
  2. <script>  
  3.     function show(value)  
  4.     {  
  5.         alert(value);  
  6.     }  
  7.           
  8.     btn.onclick = show(certid.value);  
  9. <script>  

以上代码执行起来是有错误的,因为show(certid.value)这句,直接就执行了show方法,而没有正确把这个方法对象赋给btn.onclick事件. 
如果我们改成这样 

btn.onclick = show; 
参数又无法传递. 

所以正确的代码应该这样写,我们加一个参数以看得更明白一些: 
Html代码  收藏代码
  1. <body>  
  2. <input id="certid" type="text" value="123456" >  
  3. <input id="btn" type="button" value="button" onclick="">  
  4. </body>  

Javascript代码  收藏代码
  1.    
  2. <script>  
  3.     function show(value1,value2)  
  4.     {  
  5.         alert(value1+","+value2);  
  6.     }  
  7.       
  8.     var i = 10;  
  9.     btn.onclick = function(){  
  10.                            show(certid.value,i);  
  11.                        };  
  12. <script>  

这样就实现了动态给onclick事件句柄赋值,并支持参数的传递.

 

 转:http://www.iteye.com/topic/337611  

3Q