我有以下代码来调用页面中每个按钮的功能。
dojo.query('.btn').forEach(function(item){
Obj = new MyClass(item); // class calls the ajax request on error of each btn click I have to handle some functionality in below function showError
dojo.connect(Obj, 'showError', dojo.hitch(Obj, function(errors){
console.log(Obj + 'came');
}));
这里我尝试使用dojo.hitch来维护每个对象Obj的状态,但它不是维护。只有第一个Obj正在触发。对于第二个按钮,第一个Obj正在触发。这里有我遗漏的任何东西。< / p>
答案 0 :(得分:0)
Obj
被声明为全局变量。尝试在其前面加var
。例如:
var Obj = new MyClass(item);
如果您不提供var
,它将创建一个名为Obj
的全局可访问变量。这意味着每次循环时,都会引用相同的全局变量。结果是每个都连接到相同的Obj
(这就是为什么两个按钮都连接到同一个对象的原因)。
另外,请阅读StackOverflow上的this question以获取有关声明变量和全局范围的更详细视图。