我对这个感到困惑。我正在创建一个具有自己的动态内容的灯箱样式 div,如下所示:
//ADD LIGHTBOX DIV
var DG_lightbox = document.createElement('div');
DG_lightbox.className = "DG_lightbox";
DG_lightbox.id= "DG_lightbox";
document.body.appendChild(DG_lightbox);
//ADD MAIN CONTENT DIV
var DG_contentbox = document.createElement('div');
DG_contentbox.className = "DG_contentbox";
DG_contentbox.id= "DG_contentbox";
DG_lightbox.appendChild(DG_contentbox);
显然还有更多内容,但它们都以相同的方式添加到 DG_lightbox div 中。灯箱有一个关闭按钮,应该如下所示:
function closeDG(){
DG_lightbox.parentNode.removeChild(DG_lightbox);
return false;
window.location.hash = "";
}
它在 IE 和 Chrome 中运行良好,但在 Firefox 中似乎并没有完全摆脱该对象。每第二次创建灯箱,一些内容似乎没有正确初始化,当再次关闭时,浏览器必须在它被删除之前考虑它(好像两次内容被删除)。之后,它再次正常工作,直到第四次。
所以如果我使用removeChild()
两次closeDG()
我没有这个问题,但页面刷新,好像return false
不是为第二种方法工作(重复return false
什么都不做)。
我希望能够只使用 的一个实例removeChild()
,但只要我可以防止页面在被调用时刷新,我就愿意使用重复的方法。
该网页在此处: http: //www.apennydreadful.com 单击“章节 > 从此处开始”以查看正在运行的脚本。
任何帮助将不胜感激。
~gyz
更新
似乎增加一秒钟并不是让它工作的原因removeChild
。相反,由于第二个导致代码跳过,页面刷新,也刷新了代码......所以每次其他点击时重复出现的错误永远不会到达,但它仍然存在。所以,再一次,我不知所措。即使我在使用之前清空 div ,结果也是一样的。removeChild
return false
$("#DG_lightbox").empty();
$("#DG_lightbox").remove();