[英]how to call the button click event in post create dojo AMD module
我在dojo AMD模块中创建了新的dojo应用程序。 我需要在一个脚本文件中调用我的按钮单击,然后单击另一个脚本文件。 但是当我点击按钮时,它显示了空值错误,我的示例代码如下:
我的功能文件代码是:
define(["dojo/_base/declare" . . .], // defaultDuration
function (declare . . ) {
var mycode = declare([ContentPane, _WidgetBase, _TemplatedMixin], {
toggle: function () {
//here my function
},
constructor: function (params /) {
},
postCreate: function () {
}
});
return mycode;
});
按钮点击事件:
define(["dojo/_base/declare" . . . ],
function (declare . . .) {
var evet = declare([dijit._WidgetBase, dijit._TemplatedMixin], {
_div: null,
constructor: function (div) {
this._div = div;
},
postCreate: function () {
this.inherited(arguments);
var markbutton = new Button({
label: "Mark",
}, this.markButtonNode);
markbutton.on("click", function (evt) {
this._div.toggle(); // error here _div is undefined.
});
}
});
return evet;
});
您需要搭上范围,以便this
工作。
markbutton.on("click", lang.hitch(this, function (evt) {
this._div.toggle();
}));
好吧,您可以将范围存储在变量中,并在函数内部访问此变量。
尝试这个:-
var _this = this;
markbutton.on("click", function (evt) {
_this._div.toggle();
});
在这种方法中,不需要“ dojo / _base / lang” ...
希望这个能对您有所帮助..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.