我使用dojo
创建了一个dojo/_base/declare
类,其中包含onClickHandler
。 dijit/form/Button
使用此处理程序来处理类中存储的数据。我需要处理程序能够引用触发事件的Button
和处理程序所属的类的实例。
例如,下面是类中处理函数的第一部分:
drawToolClick : function(evt) {
this.drawingtoolbar.deactivate(); // Here `this` should represent the instance of my class
var parent = this.getParent(); // Here `this` should represent the button that was clicked
我知道我显然无法使用this
来表示这两者,但当我将dojo/_base/lang
hitch
我的类实例用于该函数时,我不知道哪个按钮是单击(我有多个按钮使用相同的处理程序,因为它们代表enum
)。如果我忽略了hitch
this
引用了被单击的按钮,但我不知道如何获取该处理程序所属的类的实例。
有更好的方法吗?
答案 0 :(得分:0)
所以,我终于弄明白了。我只是在我的模块中添加了一个变量var self;
,其中类在declare
语句之前定义。然后,在我的课程constructor
功能中,我添加了self = this;
。
然后在我的onclick
处理程序中,我使用this
来引用单击的按钮,并使用self
来引用类实例。
这似乎没问题。