3 回答
TA贡献1856条经验 获得超5个赞
一种用例可以是存储实例,下面是伪代码
function SomePlugin(element, options) {
this.$el = $(element);
this.options = options;
}
SomePlugin.prototype.method = function() {
this.$el.toggleClass(this.options.cssClass);
}
$.fn.somePlugin = function(options) {
var somePluginInstance = new SomePlugin(this, options);
// store instance as data
this.data("somePlugin", somePluginInstance);
}
用法:
$(".element").somePlugin({});
var pluginInstance = $(".element").data("somePlugin");
pluginInstance.method();
TA贡献1712条经验 获得超3个赞
.data()方法允许您以一种安全的方式附加任何类型的DOM元素的数据,以防止循环引用,从而避免内存泄漏。
我们可以为单个元素设置几个不同的值,并在以后检索它们:(文档示例)
$( "body" ).data( "foo", 52 );
$( "body" ).data( "bar", { isManual: true } );
$( "body" ).data( { baz: [ 1, 2, 3 ] } );
$( "body" ).data( "foo" ); // 52
$( "body" ).data(); // { foo: 52, bar: { isManual: true }, baz: [ 1, 2, 3 ] }
“使用data()方法更新数据不会影响DOM中的属性。要设置data- *属性值,请使用attr。
在jQuery 1.4.3之前,.data(obj)完全替换了所有数据。从jQuery 1.4.3开始,数据通过浅合并来扩展。”
字体:jquery文档
添加回答
举报