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開始,數據通過淺合并來擴展?!?/p>
字體:jquery文檔
添加回答
舉報