JS 元素交换了位置,其绑定事件丢失了,怎么处理?

EdwardLong 2011-08-03 09:44:28
元素位置交换成功后,事件丢失了,怎么办?

var currtRow = document.getElementById(LevelArr[0]).parentNode;
var exRow = currtRow.nextSibling;
var currtCell = currtRow.childNodes[1];/////这个元素在交换位置之前已经绑定了事件
var exCell = exRow.childNodes[0]; /////这个元素在交换位置之前已经绑定了事件

TableClass.prototype.exchange =function(obj){
var $o = {
Row:null,
Cell:null,
ExRow:null,
ExCell:null
}
Object.extend($o,obj,true);

var $Cell = $o.ExCell.cloneNode(true);
var $ExCell = $o.Cell.cloneNode(true);

$o.Row.removeChild($o.Cell);
$o.Row.appendChild($Cell);//添加克隆元素

$o.ExRow.removeChild($o.ExCell);
$o.ExRow.appendChild($ExCell);//添加克隆元素
}
...全文
161 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
燥动的心 2011-08-03
  • 打赏
  • 举报
回复
你的事件是怎么绑定的,你说丢失用的浏览器是?


用cloneNode复制容器,但cloneNode在ie中有一个bug:
在ie用attachEvent给dom元素绑定事件,在cloneNode之后会把事件也复制过去。
而用addEventListener添加的事件就不会

MuBeiBei 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 edwardlong 的回复:]
元素位置交换成功后,事件丢失了,怎么办?

var currtRow = document.getElementById(LevelArr[0]).parentNode;
var exRow = currtRow.nextSibling;
var currtCell = currtRow.childNodes[1];/////这个元素在交换位置之前已经绑定了事件
var exCell =……
[/Quote]

交换完位置 再重新绑定一次呢?
lsw645645645 2011-08-03
  • 打赏
  • 举报
回复
给克隆的元素 重新绑定吧

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧