我用下面的代码调用页面中每个按钮的函数。
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也在触发。这里我错过了什么吗?
1条答案
按热度按时间lvmkulzt1#
Obj
被声明为全局变量。请尝试在它前面加上一个var
。例如:如果不提供
var
,它将创建一个全局可访问变量Obj
,这意味着每次循环时,都引用同一个全局变量,结果是每个按钮都连接到同一个Obj
(这就是为什么两个按钮都连接到同一个对象)。另外,阅读StackOverflow上的this question,以获得关于声明变量和全局作用域的更详细的视图。