如下,通过动态(如ajax或其他方式)再次附值 innerHTML时,发现innerHTML 中TT3这个函数的调用在火狐中出现异常。innerHTMLstr = <span id="LS4" onMouseOver="TT3(this, TS44)"> MouseOvertext </span><span id="TS44">TargetText</span> //动态获取innerHTMLstr。注: 为了易于看清,这里双引号不转义。xg.innerHTML = innerHTMLstr; //这时TT3(this, TS44) 这个函数能正常调用,运行正常。xg.innerHTML = null;innerHTMLstr = <span id="LS4" onMouseOver="TT3(this, TS44)"> MouseOvertext </span><span id="TS44">TargetText</span> //重新动态获取innerHTMLstr, 这个innerHTMLstr与之前的innerHTMLstr一模一样。(特别是再次包含有TT3(this, TS44)这个调用和TS44这个元素。)xg.innserHTML = innerHTMLstr; //再次附值后这时TT3(this, TS44) 这个函数在火狐中不能正常工作。在IE, Chrome 等其他浏览器工作正常。经debug检查后觉得出错可能原因有: 1) 第二次附值 innerHTML后,火狐没有清掉之前的TS44这个元素,即出现TS44的id重复,导致出错。2) 原先的 TT3(this, TS44)被绑定到旧的TS44。可能需要重新绑定函数。我试了一个有效的解决,在第二次将innerHTMLstr附值给xg前,把 innerHTMLstr 中的TS44 替换加上随机数。结果TT3就能工作正常。但这个解决方案是没办法的办法。 以下是我上网找到的几种解决方法好象都没用: 1) LS4.removeAttribute(onmouseover) 2) 移除 xg 下的 childnodes 3) $(“#LS4”).unbind() --- 还请高人指点正确解决途径。多谢!
解决方案 »
- 鼠标左键拖拽的多选
- ie8下怎么支持js里面的confirm()和alert()
- JQuery-UI中的tabs默认是横向显示各个标签卡,如何修改才能让其纵向垂直显示呢?怎么修改了ul属性的display为block结果还是水平横向显示标签?
- 求一方法获取字符的坐标,在线等
- 关于IE和FF中"cursor:url"样式不兼容的问题...
- 简单问题
- Safari浏览器下如何实现iframe高度自适应(IE,Firefox已实现)?
- 我想用javascript做一个效果,不知怎么做。
- 求一滚动效果的代码,JS或者纯CSS的都可以。
- 关于计算的问题,好奇怪(????)
- 如何往一个可编辑div的指定光标处插入图片
- 怎样从一个html获取另一个html文件text的name或者id属性
TT3(this, TS44)
你直接用id 来引用对象是吧
我想你改成TT3(this, 'TS44')然后修改下 tt3函数 把 ts44的获取方法改成 document.getElementByid 获取
我想这样浏览器没理由 出错了