我正在使用DIJIT和DOJO 1.10设计自定义小部件。
基本上我的自定义窗口小部件需要有一些像按钮这样的行为,所以当用户点击它时会发生一些事情。我需要确保其他开发人员可以在onClick
在该窗口小部件上触发时添加自定义代码。
在reading this guide之后,我了解我的自定义窗口小部件应该实现扩展点。我在DIJIT的源代码中注意到Button.js,我看到他们使用了一个名为dijit._OnDijitClickMixin
的特殊mixin。
我的小部件的代码,到目前为止它工作正常,但我想知道:
_onButtonClick: function( /*Event*/ e){
... // Trust me, _onClick calls this._onClick
},
_onClick: function( /*Event*/ e){
...
return this.onClick(e);
},
onClick: { // nothing here: the extension point!
}
我的自定义小部件没有实现任何这些功能,似乎工作正常。
define([
'dojo/_base/declare',
'dijit/_WidgetBase',
'dijit/_OnDijitClickMixin',
'dijit/_TemplatedMixin',
'dojo/text!./templates/template.html'
], function (
declare,
_WidgetBase,
_OnDijitClickMixin,
_TemplatedMixin,
template
) {
return declare([_WidgetBase, _TemplatedMixin, _OnDijitClickMixin], {
templateString: template
});
});
<div data-dojo-attach-event="ondijitclick:onClick"> </div>
this._iconPage = new IconPages({
id: 'iconPage',
onClick: function () {
//do smt
}.bind(this)
}).placeAt('content');
答案 0 :(得分:1)
你所拥有的一切都很好,因为onClick方法意味着被覆盖以挂钩事件。您还可以做的是挂钩您的IconPages&#34;点击&#34;通过这样的事情使用dojo/on的事件:
on(this._iconPage, "click", /*function here*/);