这个事件绑定在ie下这么报错

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



无标题文档 #fade{ width:320px; height:331px; float:left; position:relative; } #pic-list li{ filter:alpha(opacity=0); opacity:0; position:absolute; } #txt-list{ position:absolute; bottom:0; right:0; } #txt-list li{ float:left; } #txt-list a{ display:inline-block; width:30px; line-height:30px; text-align:center; text-decoration:none; } body{ margin:0; padding:0; } * ul{ margin:0; padding:0; } * ul li{ list-style:none; }

  • 111111111111111111
  • 2222222222222222222222222222
  • 333333333333333
var oPicLi = document.getElementById('pic-list').getElementsByTagName('li'); var oTxtLi = document.getElementById('txt-list').getElementsByTagName('li'); var i = 0; var Eventtil = { addListener:function(obj,type,fn){ if(obj.addEventListener){ obj.addEventListener(type,fn,false); }else if(obj.attachEvent){ obj.attachEvent('on' + type,fn); } } }; for(i=0;i<oTxtLi.length;i++){ Eventtil.addListener(oTxtLi[i],'mouseover',function(){ for(i=0;i<oTxtLi.length;i++){ oTxtLi[i].style.background = 'white'; } this.style.background = 'black'; }); }


[code="java"]

var oPicLi = document.getElementById('pic-list').getElementsByTagName('li'); var oTxtLi = document.getElementById('txt-list').getElementsByTagName('li'); var i = 0; var Eventtil = { addListener : function(obj, type, fn) { var handler = fn; handler = function(e) { // 改变this的作用域 fn.call(obj); } if (obj.addEventListener) { obj.addEventListener(type, handler, false); } else if (obj.attachEvent) { obj.attachEvent('on' + type, handler); } } }; for (i = 0; i < oTxtLi.length; i++) { var This = oTxtLi[i]; Eventtil.addListener(oTxtLi[i], 'mouseover', linkMouseover); } function linkMouseover() { for (i = 0; i < oTxtLi.length; i++) { oTxtLi[i].style.background = 'white'; } this.style.background = 'black'; }

[/code]

[code="java"]
// 这句在IE下,这个this表示的是整个网页。没有style属性。
this.style.background = 'black';

[/code]

把oTxtLi[i]对象传到事件处理函数中,然后用设置这个对象的相应CSS属性

和楼上的思路一样。

[code="java"]this.style.background = 'black'; [/code]

这里的this貌似有作用域的问题