在javascript DOJO中维护对象状态
我有以下代码来调用页面中每个按钮上的函数在javascript DOJO中维护对象状态,javascript,html,events,dojo,dom-events,Javascript,Html,Events,Dojo,Dom Events,我有以下代码来调用页面中每个按钮上的函数 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(
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也在启动。我在这里缺少什么吗。
Obj
被声明为全局变量。试着在它前面放一个var
。例如:
var Obj = new MyClass(item);
如果不提供var
,它将创建一个名为Obj
的全局可访问变量。这意味着每次循环时,都引用相同的全局变量。这样做的结果是,每个按钮都连接到相同的Obj
(这就是为什么两个按钮都连接到相同的对象)
另外,请阅读StackOverflow,以获得有关声明变量和全局范围的更详细视图。您是否检查了forEachLoop是否提交了正确的项目?它在你做的一堆钮扣的孔中循环,还是在第一个钮扣处断裂?