weixin_42297586 2009-10-15 00:23
浏览 150
已采纳

这个问题怎么解决????

写了一个Obsrvable的应用,事件的监听有问题,代码如下:




Select Ticc Service


    <script type="text/javascript" src="person.js"></script>
    <script>
        Ext.onReady(function(){
            var events = new Array();
            events[0] = 'name1';
            events[1] = 'name2';
            events[2] = 'name3';

            var person = new Person(events);
            for( var index = 0; index < 3; index++ )
            {
                person.fireEvent(events[index]);
            }
        });
    </script>
</head>
<body>
</body>

person.js的代码如下
var structs = {
name1: 'name1()',
name2: 'name2()',
name3: 'name3()'
};

Person = function(events){
var size = events.length;

for(var index = 0; index < size; index++ )
{
    this.addEvents(events[index]);
    var event = events[index];

    this.addListener(events[index], function(){alert(event);});
}

}
Ext.extend(Person, Ext.util.Observable, {
setname: function(){}
});

function name1(){alert('name1');}

function name2(){alert('name2');}

function name3(){alert('name3');}

执行的时候只能弹出‘name3’,搞不清楚是JavaScript代码没写对还是Observable没有用对,请大家帮忙修改下,谢谢

  • 写回答

2条回答 默认 最新

  • wanghaolovezlq 2009-10-15 08:36
    关注

    修改成如下试试:

    for(var index = 0; index < size; index++ )
    {
    (function(index){
    this.addEvents(events[index]);
    var event = events[index];

    this.addListener(events[index], function(){alert(event);});
    })(index);
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于无人驾驶的航向角
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退