这是一个简单的小部件模拟:
(function ($) {
$.widget("ui.myDummyWidget", {
options: {
},
_create: function () {
},
hide: function () {
this.element.hide();
},
_setOption: function (key, value) {
$.Widget.prototype._setOption.apply(this, arguments);
},
destroy: function () {
$.Widget.prototype.destroy.call(this);
}
});
} (jQuery));
它只添加了一个可以调用来隐藏元素的方法 hide。如果从小部件内完成,则很容易
this.hide();
但是一个常见的场景是你想从外部调用一个小部件实例的方法(Ajax 更新,或其他外部事件)
那么访问小部件实例的最佳方式是什么?一种方法是将小部件的引用添加到元素中,丑陋...
_create: function () {
this.element[0].widget = this;
},
然后你可以从外部访问它
this.dummy = $("#dummy").myDummyWidget();
this.dummy[0].widget.hide();