【发布时间】:2016-08-18 16:38:35
【问题描述】:
我开始摆弄 Dojo.js,遇到了一个我不明白的东西。
我正在尝试创建自己的小部件。该小部件将非常简单——它只会查询页面上的所有图像并让它们监听 'click' 事件。每次单击都会将小部件的 counter 属性增加 1。
这是我的看法:
define(
[
"dojo/_base/declare",
"dojo/query",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!myProject/folder/myWidgetTemplate.html",
],
function(declare, query, _WidgetBase, _TemplatedMixin, template) {
declare("MyWidget", [_WidgetBase, _TemplatedMixin], {
templateString: template,
counter: 0,
onClick: function(evt) {
this.counter++;
console.log(this.counter);
},
postCreate: function() {
query("img").on("click", this.onClick);
}
});
}
);
小部件初始化,我确实可以点击图像,但控制台总是返回 undefined。 似乎我缺少关于 dojo/on 模块如何工作的一些核心方面。有人可以向我解释一下我的代码到底发生了什么吗?
【问题讨论】:
-
注意:据我了解,您的小部件没有任何可见的 UI(因为图像位于页面中的任何位置)。在这种情况下,您可以删除
_TemplatedMixin,从而删除您的myProject/folder/myWidgetTemplate.html模板文件以及属性templateString: template, -
你说得对,谢谢指出! (这个小部件实际上使用了它自己的 UI,我只是去掉了那部分代码以使问题更简单。但是,我忘了删除 _TemplatedMixin。但提醒一下以防万一总是好的,所以谢谢!)跨度>
标签: javascript events dom dojo widget