插件内部jquery数据方法的奇怪行为
Strange behaviour of jquery data method inside plugin
当我正常使用jQuery的数据方法时,没有问题。但我想在插件中使用它,以保存应用它的每个元素的设置。
问题是:它保存了第一次应用插件的每个元素的数据。例如,我将插件应用于$('div')
,然后为$('#div1')
设置一些值,并自动为$('#div2')
设置相同的值。
http://jsfiddle.net/sX7AC/1/
这是一个Fiddle的例子,展示了我的意思。为什么会发生这种情况?当我尝试在插件之外做同样的事情时,它是有效的。
settings
是一个对象。您正在使用此对象设置所有div的数据。当您调用height
时,您正在更改该对象的字段。因此,其他div的值也将更新。。。(因为他们的"myPluginData"也指同一个对象)
如果您想将状态存储在该设置对象中,我建议将extend
命令移动到each
中(这样将为每个元素创建一个不同的对象)。
请参阅更新后的示例
相关文章:
- 可以“;超级“;可以在子类的方法内部使用,在不直接引用的情况下调用相应的超类方法
- 如何从方法内部获取js方法名称
- 方法不在另一个方法内部调用
- 在模式方法内部,“this”在猫鼬 4.4.12 中为空 {}
- Angular promise回调不是在构造函数方法内部触发,而是在对象文本方法中触发
- 从对象方法内部的数组中运行console.log
- 从方法内部设置对象变量
- 在方法内部调用另一个方法 ReactJS
- 取消对象方法内部的动画帧不起作用
- GetVariable在方法内部工作
- HTTP GET位于客户端调用的api方法内部
- OOP,命名空间的顶级方法内部的私有函数
- Wicket:将JavaScript附加到非Ajax按钮(onSubmit()方法内部)
- 带有查询参数的节点js-app.get方法-内部服务器错误
- 数组排序方法内部的作用域
- 如何在JavaScript中访问继承方法内部的私有属性
- Cordova插件的执行方法内部的AsyncTask工作不正常
- 访问方法内部的变量's函数
- 如何从resolve方法内部更新作用域
- Javascript:从对象方法内部调用回调函数,产生意想不到的结果