<script type="text/javascript">一个简单标签切换的效果
function tab(){
var a_arr=document.getElementById("tabLi").getElementsByTagName("a");
var a_sum=a_arr.length;
for(var i=0; i<a_sum; i++){
var a=i+1;
a_arr[i].index=a;
eventListener(a_arr[i]);
}
function eventListener(obj){
if(obj.attachEvent){
obj.attachEvent("onclick",liClick)
}
else if(obj.addEventListener){
obj.addEventListener("click",liClick,false)
}
else{
return ;
}
}
function liClick(){
for(var i=0; i<a_sum; i++){
a_arr[i].className="";
document.getElementById("tab"+a_arr[i].index).className=document.getElementById("tab"+a_arr[i].index).className.toString().replace(/show/g,"");
}
this.className="now";
document.getElementById("tab"+this.index).className+=" show";
console.log(document.getElementById("tab"+this.index).className);
};
}
tab();
</script>
javascript
addEventListener()
attachEvent()
this
------解决方案--------------------
function eventListener(obj,cb){
if(obj.attachEvent){
obj.attachEvent("onclick",function(){
cb instanceof Function && cb.call(obj,window.event);
});
}
else if(obj.addEventListener){
obj.addEventListener("click",function(event){
cb instanceof Function && cb.call(obj,event);
},false);
}
else{
return ;
}
}
试试这个
------解决方案--------------------
attachEvent 的this指向的是window,而addEventListener指向的被调用的fn。
这个在js高程上提到了,有空去了解一下。