我有两个 jQuery 小部件,小部件 A 是基础小部件,小部件 B 继承小部件 A。
小部件 A:
$(function () {
$.widget("custom.widgetA", {
_create: function () {
this.element
.addClass('ui-widget-a')
.append(
$(document.createElement('div')).text('Widget A')
);
},
someMethod: function() {
return 'widget A';
}
});
}(jQuery));
小部件 B:
$(function () {
$.widget("custom.widgetB", $.custom.widgetA, {
_create: function () {
this.element
.addClass('ui-widget-b')
.append(
$(document.createElement('div')).text('Widget B')
);
this._super();
},
someOtherMethod: function() {
return 'widget B';
}
});
}(jQuery));
比我将小部件 B 应用于某些 HTML 元素
$('#widgetB').widgetB();
现在我想someMethod
从小部件 A 调用方法...为了做到这一点,我使用了这段代码
$('#widgetB').widgetA('someMethod')
但收到错误消息
无法在初始化之前调用 widgetA 上的方法;试图调用方法“someMethod”
我知道如果我这样称呼它会起作用
$('#widgetB').widgetB('someMethod')
但我需要使用基本小部件来调用它......有可能吗?
这是我的例子的小提琴
更新
在这里发生这种情况的原因