如下,通过动态(如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() --- 还请高人指点正确解决途径。多谢!
解决方案 »
- web 开发 10分钟 无操作返回登录页面
- javascript传值问题
- [百度分享]javascript中函数调用过程中的this
- Firefox(版本:3.0.4)对iframe标签的onblur事件无反应???
- 求一正则表达式,用户只能输入汉语,数字和英文字母.不能输入特殊符号.但是可以输入下划线符号.
- 代码出错,帮忙看一下。
- 怎样将字符串转换为整型数进行加减运算?
- 谁能帮帮我
- 难题: 一个页面每隔10秒reload,有何办法去掉"卡卡"声音?
- JS新手遇到的问题,求过来人解答!
- 如何往一个可编辑div的指定光标处插入图片
- 怎样从一个html获取另一个html文件text的name或者id属性
TT3(this, TS44)
你直接用id 来引用对象是吧
我想你改成TT3(this, 'TS44')然后修改下 tt3函数 把 ts44的获取方法改成 document.getElementByid 获取
我想这样浏览器没理由 出错了