4

jQuery 的clone函数如下所示:

.clone( [withDataAndEvents ] [, deepWithDataAndEvents ] )

withDataAndEvents:一个布尔值,指示是否应将事件处理程序和数据与元素一起复制。

deepWithDataAndEvents:一个布尔值,指示是否应复制克隆元素的所有子元素的事件处理程序和数据。

这两个参数都会影响data events。是否可以只保留数据而不保留事件?基本上,我的理想clone功能如下所示:

.idealClone( [withData] [, withEvents ] [, deepWithData ] [, deepWithEvents ])

withData:一个布尔值,指示数据是否应与元素一起复制。

withEvents:一个布尔值,指示是否应将事件处理程序与元素一起复制。

deepWithData:一个布尔值,指示是否应复制克隆元素的所有子元素的数据。

deepWithEvents:一个布尔值,指示是否应复制克隆元素的所有子元素的事件处理程序。

有没有办法实现这一点?

注意我正在使用 1.8.1,但欢迎所有版本的答案

4

1 回答 1

3

您可以使用理想的克隆方法轻松扩展 jQuery 对象,并使用 和 的各种组合dataoff仅保留您想要的东西。我个人认为这样做很容易:

// clones with data and events, then unbinds all events (bound with .on)
$(element).clone(true).off();
于 2013-02-14T22:33:53.283 回答