Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript DOJO中维护对象状态_Javascript_Html_Events_Dojo_Dom Events - Fatal编程技术网

在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是否提交了正确的项目?它在你做的一堆钮扣的孔中循环,还是在第一个钮扣处断裂?