文章背景说明:本人在开发时遇到的问题,在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
分享到:
相关推荐
找了半天找到的解决办法,看介绍说是javascript的闭包问题,导致得不能直接读取外部的那个函数,不然就所有传递的参数都变为最后一个了。
attachEvent的使用方法与传递参数[IE|firefox]
attachEvent与addEventListener区别适应的浏览器版本不同,同时在使用的过程中要注意
通过 attachEvent 和 detachEvent 方法处理带参数的函数(示例代码)
本文实例讲述了javascript中attachEvent用法。分享给大家供大家参考。具体分析如下: 一般我们在JS中添加事件,是这样子的 obj.onclick=method 这种绑定事件的方式,兼容主流浏览器,但如果一个元素上添加多次同一事件...
执行顺序是没有规律的,但是每次执行的顺序是一样的,如果是随机那么应该每次执行的顺序都不一样才对,这才是我想要说明的
IE11没有window.attachEvent方法处理方法,文档中有详细说明
注意原因: window对象的attachEvent方法只在IE浏览器中有效,其它浏览器不支持这个方法,所以报错。 self.attachevent is not a function其实就是以前的代码, 没有做...下面是临时解决方法: if(!self.addEventListe
02-attachEvent.html
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
众所周知,不带参数的绑定非常简单,只要使用(语法:“document.getElementById(“对象ID名”).attachEvent(“事件名,如onchange”,函数名);”)(示例:“document.getElementById(“select_0”).attachEvent(...
大家都知道事件的用法就是当某个事件(状况)被触发了之后就会去执行某个Function, 尤其是Javascript, 在当红AJAX的催化下, 了解Javascript的Event用法更加重要, 在这里就大概介绍一下avascript的Event用法.