分享

js的attachEvent传递的参数总是最后一个,求解决办法

 xiaozhenyu 2013-08-12

1、var obj=null; 
    outer:for(var i=0;i<objs.length;i ){ 
        obj=objs[i]; 
        obj.attachEvent("onclick",function (){aaa(obj);});   
    }} 

    aaa(obj);//obj=objs数组最后一个,所以这样肯定不对;

2、attachEvent不支持Mozilla系列,需要addEventListener
http://www.cnblogs.com/poorpan/archive/2011/08/10/2134039.html

3、我们通过event传递,然后通过如下代码拿到目标对象
                var src = event.srcElement;
if(!src) {
src = event.target;
}
http://codex./HTML%E5%85%B3%E4%BA%8EEvent%E5%AF%B9%E8%B1%A1


4、可执行代码:

Java代码  收藏代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">  
  2. <html>  
  3. <head>  
  4.   
  5. <title>About</title>  
  6. <meta http-equiv=Content-Type content="text/html; charset=utf8">  
  7. </head>  
  8. <body >  
  9. <table width="100%" border="1">  
  10. <tr><td><a href="#" >123明细信息</a></td></tr>  
  11. <tr><td><a href="#" >456明细信息</a></td></tr>  
  12. <tr><td><a href="#" >789明细信息</a></td></tr>  
  13. <tr><td><text>ss</text></td></tr>  
  14. <table>  
  15. </body>  
  16. <script language="javascript">  
  17.   
  18. function initHrefColor(){  
  19.     var objs=document.getElementsByTagName("a");  
  20.     var obj=null;  
  21.     outer:for(var i=0;i<objs.length;i ){  
  22.         obj=objs[i];  
  23.         //非Mozilla系列  
  24.         if(obj.attachEvent) {  
  25.             obj.attachEvent("onclick",aaa);    
  26.         } else {  
  27.             obj.addEventListener("click",aaa);    
  28.         }  
  29.     }}  
  30.   
  31.   
  32.     function aaa(event){  
  33.         var src = event.srcElement;  
  34.         if(!src) {  
  35.             src = event.target;  
  36.         }  
  37.         alert(src.innerText);  
  38.     }  
  39.   
  40.     initHrefColor();  
  41. </script>  
  42.   
  43. </html>  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多