Javascript 克隆容器以便在以后不附加所有事件和元素的情况下重复使用

Javascript 克隆容器以便在以后不附加所有事件和元素的情况下重复使用,javascript,jquery,Javascript,Jquery,我有一个container div作为jQuery对象,用于在类(javascript对象)中切换图像。在某个时刻,用户可能会决定重置该容器 与其删除所有HTML元素和我附加到该容器的所有单击/拖动/调整大小侦听器来重置它,不如在构造函数中克隆该容器,以便在重置时重新获取它: this.container = container; //keep an original in case it needs to be reset this.originalContainer = container.

我有一个container div作为jQuery对象,用于在类(javascript对象)中切换图像。在某个时刻,用户可能会决定重置该容器

与其删除所有HTML元素和我附加到该容器的所有单击/拖动/调整大小侦听器来重置它,不如在构造函数中克隆该容器,以便在重置时重新获取它:

this.container = container;
//keep an original in case it needs to be reset
this.originalContainer = container.clone();
**重置方法:**

redrawImageFromOriginal: function (newImage) {
    this.image = newImage;
    this.container = this.originalContainer;
    this.placeImage(this.getImageWidth(), this.getImageHeight(), this.getImgX(), this.getImgY());
},
显然,当我这样做时,我失去了我正在使用的容器的范围。因此,
this.container
与我一直使用的
this.container
有所不同


现在,简而言之,我的问题是:如何使容器恢复其默认行为(或缺少默认行为),以便以后可以随心所欲地重建它。

克隆时需要同时克隆数据和事件,请遵循以下代码:

this.container=container

//保留原件,以防需要重置

this.originalContainer = container.clone(true, true);

clone( [dataAndEvents] [, allDataAndEvents] )
dataAndEvents:一个布尔值,指示是否应将事件处理程序和数据与元素一起复制。默认值为false

allDataAndEvents:一个布尔值,指示是否应复制克隆元素的所有子元素的事件处理程序和数据。默认情况下,其值与第一个参数的值匹配(默认为false)


希望它对您有用:)

您能提供fiddle with示例吗?因为它附带了一个完整的框架和一些1000行代码,我真的不能。我希望这个问题足够清楚,可以“明白我的意思”。对不起(