gpt4 book ai didi

javascript - dom 销毁后 jquery 处理程序/数据重新创建

转载 作者:行者123 更新时间:2023-12-02 20:12:47 25 4
gpt4 key购买 nike

在 jQuery 中,元素被销毁后,所有与 jQuery 相关的数据都被销毁 - 包括使用 data() 保存的值、所有事件处理程序等。但是,dom 本身被保留并可以再次使用。我想知道是否可以以任何简单的方式检索这些数据,或者我是否必须自己以某种方式保存并重新创建它?

用 jquery 编写的简单示例:http://jsbin.com/examuh/2/edit 。可以在 http://jsbin.com/examuh/2 看到效果。正如您所看到的,只有第三个处理程序有效,该处理程序在重新附加之后添加的工作正常 - 即使在销毁之后但重新附加之前添加的处理程序也不起作用。显然,DOM 和#id 都被保留了。

PS:我的真实示例更复杂,在销毁父元素之前重新制作它以将 dom 元素移动到安全位置可能会很麻烦。

最佳答案

如果你想保留事件处理程序和jquery数据等,你可以使用jQuery方法.detach()从 DOM 中删除元素。然后,您可以稍后使用标准 .append()/.prepend() 等方法将其重新插入到 DOM 树中。

如果您使用.remove(),则 jQuery 数据将被删除。您的示例似乎表明,设置 div 的 html() 属性与在 jQuery 中对 div 的子元素使用 .remove() 具有类似的效果。

var keepThis = $("#toRemove").detach();
//.. later on
$("#insert-point").append(keepThis);

关于javascript - dom 销毁后 jquery 处理程序/数据重新创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6760691/

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