插件中jquery数据方法的奇怪行为

时间:2012-02-12 09:40:02

标签: javascript jquery plugins

当我正常使用jQuery的数据方法时,没有问题。但我想在插件中使用它,以保存应用它的每个元素的设置。

问题在于:它第一次将数据保存在插件所应用的每个元素上。例如,我将插件应用于$('div'),然后为$('#div1')设置一些值,并自动为$('#div2')设置相同的值。

http://jsfiddle.net/sX7AC/1/

这个例子说明了我的意思。为什么会这样?当我尝试在插件之外做同样的事情时,它可以工作。

1 个答案:

答案 0 :(得分:2)

settings是一个对象。您正在使用此对象设置所有div的数据。当您致电height时,您正在更改该对象的字段。因此,其他div也将更新其值...(因为他们的'myPluginData'也指同一个对象)

如果要在该设置对象中存储状态,我建议将extend命令移到each内(这样就会为每个元素创建一个不同的对象)。

请参阅updated example