JavaScript的attachEvent传递的参数解决方案

文章背景说明:本人在开发时遇到的问题,在Iteye问答里提问,本文是在朋友们帮忙的回答中总结的。谢谢他们。

http://www.iteye.com/problems/88349

 

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">  
<html>  
<head>    
<title>About</title>  
<meta http-equiv=Content-Type content="text/html; charset=gb2312">  
</head>  
<body >  
<table width="100%">  
<tr><a href="#" onClick="alert('123');" >123明细信息</a></tr>  
<tr><a href="#" onClick="alert('456');" >456明细信息</a></tr>  
<tr><a href="#" onClick="alert('789');" >789明细信息</a></tr>  
<table>  
</body>  
<script language="javascript">  
function initHrefColor(objs){  
    var objs=document.getElementsByTagName("a");  
    outer:for(var i=0;i<objs.length;i++){  
        (function (e) {  
            e.attachEvent("onclick", function () { changeHrefStytle(e); });  
        })(objs[i]);  
   
    }}  
 
function changeHrefStytle(obj){
    obj.style.color='green';
   // if(!obj.innerText.contains('√')){
	obj.innerHTML = '√ ' + obj.innerText;
   // }
}  

initHrefColor(); 
</script>  
</html>  

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">  
<html>  
<head>  
  
<title>About</title>  
<meta http-equiv=Content-Type content="text/html; charset=utf8">  
</head>  
<body >  
<table width="100%" border="1">  
<tr><td><a href="#" >123明细信息</a></td></tr>  
<tr><td><a href="#" >456明细信息</a></td></tr>  
<tr><td><a href="#" >789明细信息</a></td></tr>  
<tr><td><text>ss</text></td></tr>  
<table>  
</body>  
<script language="javascript">  
  
function initHrefColor(){  
    var objs=document.getElementsByTagName("a");  
    var obj=null;  
    outer:for(var i=0;i<objs.length;i++){  
        obj=objs[i];  
        //非Mozilla系列  
        if(obj.attachEvent) {  
            obj.attachEvent("onclick",aaa);    
        } else {  
            obj.addEventListener("click",aaa);    
        }  
    }}  
  
  
function aaa(event){  
	var src = event.srcElement;
	if(!src) {  
		src = event.target;  
	} 
	src.style.color='green';
	//if(!src.innerText.contains('√')){
		src.innerHTML = '√ ' + src.innerText;
	//}
}  
  
initHrefColor();  
</script>  
  
</html>  

 

 

在js编写规范里,提到将js写到head里是最好的。
但是你这里var objs=document.getElementsByTagName("a"); 
如果写在head里肯定拿不到,所以要加上window.onload去执行。
 

网友提供的几个js学习网站(或者是文章链接):

 

http://bonsaiden.github.com/JavaScript-Garden/zh/

 

http://www.cnblogs.com/terryglp/articles/1776695.html

 

http://codex.wordpress.org.cn/HTML%E5%85%B3%E4%BA%8EEvent%E5%AF%B9%E8%B1%A1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值