Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除元素,但保留所有数据和事件绑定_Javascript_Jquery - Fatal编程技术网

Javascript 删除元素,但保留所有数据和事件绑定

Javascript 删除元素,但保留所有数据和事件绑定,javascript,jquery,Javascript,Jquery,我有一个容器,可以注入页面上任何指定的容器中(如弹出窗口)。弹出窗口应该有一个删除父元素的按钮。我尝试使用.remove()删除父元素,但它也会删除弹出窗口及其事件。我希望它删除弹出窗口(我仍然有引用),但是,我不希望.remove取消绑定事件 到目前为止,我得到了: var popup = $('#popup'); $('body > div').on('click', function () { popup.appendTo($(this)); }); popup.find

我有一个容器,可以注入页面上任何指定的容器中(如弹出窗口)。弹出窗口应该有一个删除父元素的按钮。我尝试使用
.remove()
删除父元素,但它也会删除弹出窗口及其事件。我希望它删除弹出窗口(我仍然有引用),但是,我不希望
.remove
取消绑定事件

到目前为止,我得到了:

var popup = $('#popup');

$('body > div').on('click', function () {
    popup.appendTo($(this));
});

popup.find('button').on('click', function () {
    $(this).closest('div:not(#popup)').remove();
});

基本上,有没有一种方法可以删除元素而不删除其数据或事件

谢谢大家的关注

备注:我试图在正文中添加和隐藏弹出窗口,但这不是我需要的。

您可以使用

除了.detach()之外,该方法与相同 保留与删除的元素关联的所有jQuery数据。这 方法在将删除的元素重新插入到中时非常有用 DOM在以后的时间

还可以使用返回值将detach元素附加到DOM中:

var div = $("div").detach();

$(div).appendTo("body");

基本上你似乎在要求