这是一个mpc(属性页)的HTC组件代码,运行了两年都正常, 最近对 xml dom 和htc等做了一些升级,现在的状态事执行到element.parentNode.removeChild(element)这句话就不再往下执行, 我试着把参数该成另外一个页面,程序可以顺利
往下执行,我觉得可能需要将当前焦点改到别的元素,然后执行removeChild。还有一个变通的办法可能是先对剩余的元素
排序,最后再删除这个元素。
//双击事件的删除面板处理程序
function DelCurPage(index) {
var pObj = element.parentNode;
if (element.id == "main") {
alert("你不能删除首页面");
return;
}
if (pObj.childNodes.length > 1) {
element.parentNode.removeChild(element);
f_reset_tab(pObj);
}
}function f_reset_tab(obj) {
obj.CumulativeTabWidth = 0;
for (var i = 0; i < obj.childNodes.length; i++) {
var tb = obj.childNodes(i).childNodes(1);
//alert(tb.outerHTML);
tb.index = (i+1);
tb.id = "Tab";
tb.style.left = obj.CumulativeTabWidth;
var iWidth = tb.rows(0).cells(1).style.pixelWidth;
obj.CumulativeTabWidth += (iWidth + 15);
}
obj.selectedIndex = obj.childNodes.length;
}

解决方案 »

  1.   

    element是什么呀  你的逻辑有问题
      

  2.   

    看起来是没有什么问题,自己检查一下remove前和remove后的pObj的childNodes
      

  3.   

    我的代码升级前是没有问题的, removeChild这句话也能执行,可以把他从数组中删除, 问题是 他现在不能正常执行
    f_reset()函数了。我正在测试先执行f_reset()函数, 最后在做 removeChild()操作, 好像这样可以成功