将onclick侦听器添加到动态生成的图像

时间:2020-03-27 14:33:16

标签: javascript loops for-loop

我正在尝试为某些模式图像分配一个clicklistener,这些模式图像是从有效数组数组中的图像获取源的。

我尝试了以下代码:

for (m = 0; m < validimgs.length; m++)
{
    canvass[m].onclick = function()
    {
    modal.style.display = "block";
    modalImg.src = imgstoload[m].src;

    $('#map').hide();
    }

}

该代码的问题是,在调用onClickListener时,onclick的值为m = validimgs.length,而不是已分配的值。

这样的代码确实可以工作:

for (m = 0; m < validimgs.length; m++)
{
    if (m==0)
    {
       canvass[0].onclick = function()
       {
       modal.style.display = "block";
       modalImg.src = imgstoload[0].src;

       $('#map').hide();
       }
    }

    if (m==1)
    {
       canvass[1].onclick = function()
       {
       modal.style.display = "block";
       modalImg.src = imgstoload[1].src;

       $('#map').hide();
       }
    }
    [And so on]

}

但是m可以是任何值,这是解决问题的可怕方法。

我该怎么做才能使其正常工作?

0 个答案:

没有答案