首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery.clone()使用withDataAndEvents似乎不复制数据

jQuery.clone()使用withDataAndEvents似乎不复制数据
EN

Stack Overflow用户
提问于 2015-10-14 03:03:23
回答 2查看 264关注 0票数 0

好吧,我已经考虑了一段时间了,但没有成功。根据jQuery文档,如果我在有数据的对象上使用.clone(true),那么当我将withDataAndEvents参数设置为true时,也会复制该数据。

例如,我有一个对象。我克隆它。我使用$(obj).data('mydata')['title'] = "My New Title";更新克隆上的数据。然后,当我在原始对象中检查我的mydata上的标题元素时,它现在也有一个"My“的值。

为什么这对我不起作用?我错过了什么?还是这不是它应该工作的方式?

我有一把小提琴,它实现了我想要实现的概念,它也做了同样的事情。

http://jsfiddle.net/JAZ013/5ryyu0Lq/2/

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-14 04:06:11

我也遇到了同样的情况,并通过扩展div1数据并分配给div2数据来解决它。

这里的场景有点不同,因为值是{title:'My DIV #1'},因此对象title被引用而不是复制。我解决了witH扩展div1 data的问题。

见下面的示例:

代码语言:javascript
运行
复制
$(document).ready(function(){
    var myDIV1 = $('#test1');
    myDIV1.data('mydata', {title:'My DIV #1'});
    
    var myDIV2 = myDIV1.clone();
    myDIV2.data('mydata',$.extend({}, myDIV1.data('mydata')));
    myDIV2.data('mydata')['title'] = 'My DIV #2';

    myDIV1.after(myDIV2);

    myDIV1.html(myDIV1.data('mydata')['title']);
    myDIV2.html(myDIV2.data('mydata')['title']);
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    
<div id="test1">Thank you for trying this for me!</div>

http://jsfiddle.net/kishoresahas/5ryyu0Lq/3/

票数 1
EN

Stack Overflow用户

发布于 2015-10-14 03:09:19

如果您查看withDataAndEvents的文档,它就会复制数据,而不会复制它。

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

在您的示例中,两个元素mydata都引用同一个对象,因此对该对象属性所做的任何更改都将反映在这两个元素中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33115902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档