gpt4 book ai didi

javascript - 无法在 IE 中附加 "used"DOM 对象

转载 作者:行者123 更新时间:2023-11-30 18:53:35 24 4
gpt4 key购买 nike

我有一些对象,它们保留创建的 DOMObject,如下所示:

function category(){
var domBlock;
this.block = function(){
if (!domBlock){
// Here dom-object constructor $('<div></div>'); etc
}
return domBlock; // jquery object,
// but i test and native document.createElement
}
}

然后我清除类别的区域,并附加新旧接收(使用 Ajax)对象:

area.html('');
for(id in category_list){
area.append( category_list[id].block() );
}

其中 category_list 是包含类别对象的列表。 Area 是 jQuery 对象。

在其他浏览器(IE 除外)中,我获得了包含所有需要类别的区域,但在 IE 中,我仅获得了新接收的类别(仅创建 DomObject),其他保持旧 DomObject 不显示的旧对象。

我知道可以使用 innerHTML,但我不会保留 DomObject,而不是文本。因为 DomObject 保留了很多事件。浏览器很难在刷新区域后为每个 DomObject 附加事件。

最佳答案

点赞评论建议可以使用.clone()为此,为了消除您的其他问题,事件不复制,也包括在内。 .clone()接受一个 bool 参数,告诉它是否复制数据和事件(这是从 jQuery 1.4 开始的,在那之前它只是事件,而不是数据)。

使用.clone(bool)并获取包含事件处理程序的副本,只需执行以下操作:

return domBlock.clone(true);

关于javascript - 无法在 IE 中附加 "used"DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com