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

问题描述

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><style>#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;}</style></head><body><div id="fade"> <ul id="pic-list"> <li style="filter:alpha(opacity=100);opacity:1;">111111111111111111</li> <li>2222222222222222222222222222</li> <li>333333333333333</li> </ul> <ul id="txt-list"> <li><a href="javascript:void(0)">1</a></li> <li><a href="javascript:void(0)">2</a></li> <li><a href="javascript:void(0)">3</a></li> </ul> <script type="text/javascript"> 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';}); } </script> </div></body></html> 问题补充:那该这么写?pwc_pengwenchao 写道

解决方案

<script type="text/javascript">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';}</script>
解决方案二:
this.style.background = 'black'; 这里的this貌似有作用域的问题
解决方案三:
和楼上的思路一样。
解决方案四:
把oTxtLi[i]对象传到事件处理函数中,然后用设置这个对象的相应CSS属性
解决方案五:
// 这句在IE下,这个this表示的是整个网页。没有style属性。 this.style.background = 'black';

时间: 2024-08-26 18:02:06

这个事件绑定在ie下这么报错的相关文章

兼容性-Ie 下.html() 报错

问题描述 Ie 下.html() 报错 我想使用 .html() 获取 xml 对象中的数据,Chrome 这些都可以可以使用,但是在 ie 中报错 无法获取未定义或 null 引用的属性"replace" 解决方案 求帮助啊,大神们,这个有什么办法解决 解决方案二: 贴上你的代码,你这样说的话没人理解是什么意思的

directx-DirectX10程序Debug模式下运行报错,Release模式运行正常一般是什么原因?

问题描述 DirectX10程序Debug模式下运行报错,Release模式运行正常一般是什么原因? 1.两种模式下,编译都没问题.2.运行Debug模式下报错,信息如下:Release模式下运行截图 附:进行了多次试验,Release总是运行正常,而Debug模式基本上都是运行出错,报错信息也是同一个(如上图),但偶尔的小概率能运行(大概百分之一二,这个概率是不确定的,只是我碰巧有一两次正常运行了)遍查了代码,发现不了问题.希望各位能够说说一般情况下可能是什么原因引起的. 解决方案 0xFFF

centos-Linux下 yum报错 [Errno 14] HTTP Error 404 - Not Found

问题描述 Linux下 yum报错 [Errno 14] HTTP Error 404 - Not Found 有哪位大神出面帮我解决一下此问题,centos在使用yum下载安装软件的时候老是报如下错误: [root@localhost yum.repos.d]# yum install ** 已加载插件:fastestmirror, langpacks, presto, refresh-packagekit Unable to send message to PackageKit Reposi

javascript-IE下JS报错:传递给系统调用的数据区域太小

问题描述 IE下JS报错:传递给系统调用的数据区域太小 document.location = param: 打断点看是这句报的错,param很长,有600多个字符,是不是这个原因啊? 解决方案 在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样的,当然,不一样的Web服务器能够处理的最大长度的URL的能力也是不一样的. 下面就是对各种浏览器和服务器的最大处理能力做一些说明. Microsoft In

c++-linux下C++报错:未定义的引用

问题描述 linux下C++报错:未定义的引用 本来只是想将vs上的代码拷到linux中去运行,结果出现了许多奇怪的问题. #include <iostream> #include "Person.h" using namespace std; int main(void) { Person *Tom = new Person("Tom", 23, "123"); return 0; } 用g++编译,结果报错"未定义的引用

sql server- linux用python连接widnows下sqlserver2008报错

问题描述 linux用python连接widnows下sqlserver2008报错 说一下详细的操作步骤: 安装 msodbcsql-11.0.2260.0.tar.gz 安装 unixODBC-2.3.2.tar.gz 安装 freetds-0.91, 并且 freetds源码安装,在编译时指定参数disable-libiconv,禁止自动转换 python 2.6.5 现在问题是连接数据库的时候, pyodbc.ProgrammingError: ('42000', "[42000] [u

chrome-BIRT 在resin 下运行报错

问题描述 BIRT 在resin 下运行报错 做的报表在IE,火狐等浏览器均可以正常显示,但是在谷歌浏览器下就报错,报错如下 :com.caucho.xml.XmlParseException: stream:1: expected top element at `kid' 感觉这个包应该是resin的,可怎么也调不好,我使用了最简单的BIRT自带的模板运行,还是有问题,感觉不是报表的问题,而是resin 有问题,求指教??? resin 用的 3.0.27 birt 3_7_2

自动化测试-python+appium在Android环境下运行 报错WebDriverException

问题描述 python+appium在Android环境下运行 报错WebDriverException appium初学小菜鸟需要救急 在python+appium在Android环境下运行 报错WebDriverException: Message: Invalid locator strategy: css selector,环境变量检查过了没有问题,希望大家帮我看看是哪里的问题? 解决方案 可能版本有问题http://stackoverflow.com/questions/3167958

在android源码环境下编译报错: _intermediates/src/R.stamp&amp;amp;#39;. Stop.

问题描述 在android源码环境下编译报错: _intermediates/src/R.stamp'. Stop. 在android源码环境下编译报错: make: *** No rule to make target out/host/linux-x86/bin/aapt', needed byout/target/common/obj/APPS/my.cloud_intermediates/src/R.stamp'. Stop. 这个错误怎么样处理?