- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个模态窗口。我想要发生的是在模态打开时从页面中删除某些元素,并在模态关闭后将它们添加回原来的位置。我不想显示:无,因为那样只会隐藏它们,我需要将它们实际从页面中删除。所以我有一些 jQuery 可以删除并在计时器之后将它们添加回去只是为了测试......
更新:通过对代码添加这些内容,它现在可以抓取之前的元素,然后将其添加回同一元素之后。问题是,如果该元素也被删除了怎么办?然后它不会添加回来!另外,JavaScript 事件处理程序不会丢失吗?我正在开发一个插件,所以它应该尽可能少地干扰网站,但是 3d 元素在 Safari 中有一个无法解决的错误。
关于如何暂时删除 3d 元素而又不会过多干扰人们的网站有什么想法吗?
$3delements = $('*').filter(function(){return $(this).css('-webkit-transform-style') == 'preserve-3d'});
$3delementsposition = $3delements.prev()
//On modal open
$3delements.remove();
//On modal close
$3delementsposition.after($3delements);
问题是,这需要我在 DOM 中指定一个特定位置,以便它们返回。我希望元素返回到它们原来的位置。我如何确保元素不会更改/移动/丢失关于 .remove 到 .append 的信息。
最佳答案
使用 .detach()
和 .append()
移除和重新附加元素,它将维护您的所有事件和数据。
如果您以与删除元素相反的顺序添加元素,它们应该全部回到原位
未经测试的代码
var elems3d = $(...);
var elemsRemoved = [];
// removing
elems3d.each(function(i,o) {
var elem = $(o);
elemsRemoved.push({
loc: elem.prev(),
obj: elem.detach()
});
});
// adding back
while (elemsRemoved.length) {
var elem = elemsRemoved.pop();
elem.loc.after(elem.obj);
}
关于javascript - 从 DOM 中删除元素并将它们添加回原来的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10222155/
如何使用 Blazor 在 Linux 平台下运行 Desktop 程序 本文将讲解如何使用 Blazor 运行跨平台应用,应用到的技术有以下几点 Blazor
低并发的友友们好,我是闪客。 Lambda 表达式非常方便,在项目中一般在 stream 编程中用的比较多。 List<Student> studen
我是一名优秀的程序员,十分优秀!