Javascript 向特定函数添加多个addEventListener

Javascript 向特定函数添加多个addEventListener,javascript,jquery,events,javascript-events,addeventlistener,Javascript,Jquery,Events,Javascript Events,Addeventlistener,谢谢你的帮助。 我想对特定函数执行multi-AddEventListener,但结果不是我想要的。 我总是排在名单的最后一个孩子 为什么 代码如下: 第一节: <script> var inside_elm= new Array(); inside_elm[1]="inside_e1"; inside_elm[2]="inside_e2"; inside_elm[3]="inside_e3"; var kk = {

谢谢你的帮助。 我想对特定函数执行multi-AddEventListener,但结果不是我想要的。 我总是排在名单的最后一个孩子

为什么

代码如下:

第一节:

<script>  
    var inside_elm= new Array();
    inside_elm[1]="inside_e1";
    inside_elm[2]="inside_e2";
    inside_elm[3]="inside_e3";

    var kk = {      
        showBox :function(elm){
            alert(elm);
            document.getElementById(elm).style.display='block';
        }
    }

    function load() {
        var e_elm= new Array();
        e_elm[1]="e1";
        e_elm[2]="e2";
        e_elm[3]="e3";

        for(var i=1;i<3;i++){
            var k=e_elm[i];
            alert(inside_elm[i]);

            document.getElementById(e_elm[i]).addEventListener('click',function(){kk.showBox(inside_elm[i])},false);
        }
    }
    </script>

var inside_elm=新数组();
inside_elm[1]=“inside_e1”;
inside_elm[2]=“inside_e2”;
inside_elm[3]=“inside_e3”;
var kk={
陈列柜:功能(elm){
警报(elm);
document.getElementById(elm.style.display='block';
}
}
函数加载(){
var e_elm=新数组();
e_elm[1]=“e1”;
e_elm[2]=“e2”;
e_elm[3]=“e3”;

对于(VarI=1;i我认为这取决于以下几点,或者至少这对问题没有帮助

for(i = 1;i < 3;i++){
....
}
(i=1;i<3;i++)的
{
....
}
将只访问数组的前两个原子,并在第三次迭代之前退出循环。请重试

for(i = 1;i < 4;i++){
....
}
(i=1;i<4;i++)的
{
....
}
同样,在这种情况下,最好从0开始数组索引

for(i = 0;i<3;i++){
....
}

for(i=0;i基本上取决于这样一个事实,即在函数执行之前,它不会计算'i',在该阶段它被设置为3

您要做的是使用以下内容:

for(var i=1;i<4;i++){
    var k=e_elm[i];
    alert(inside_elm[i]);

    var elm = document.getElementById(e_elm[i]);
    elm.inside_elm = inside_elm[i];
    elm.addEventListener('click', function(){kk.showBox(this.inside_elm)},false);
}

for(var i=1;i您似乎缺少
的结束div标记。编辑:有人修复了它(可能是您),但请确保这不会对问题产生影响。作为扩展,它可能值得使用..长度而不是静态值。这不是答案,有人可以帮我解决问题?我检查了你的想法,它工作了,但这不是完整的答案。最好的答案是:谢谢,这个修复很好,但当我添加了更多元素时我增加了一个计数器,最后一个div是用多个div打开的为什么?这个的逻辑是如何工作的?我解决了这个问题!!!我在div上丢失了关闭标签,你的脚本工作得很好。谢谢
for(var i=1;i<4;i++){
    var k=e_elm[i];
    alert(inside_elm[i]);

    var elm = document.getElementById(e_elm[i]);
    elm.inside_elm = inside_elm[i];
    elm.addEventListener('click', function(){kk.showBox(this.inside_elm)},false);
}