动态调用的函数,未定义参数

问题描述 投票:0回答:3

我正在动态生成一个图库,每个图库项目都有一个onClick事件,该事件调用一个将项目值作为参数的函数。

我测试了不带“”的代码,并定义了值,但是该函数在创建项目时运行,而不是在单击时运行。

当我使用“”时,该函数仅在单击时运行,但得到未定义的值

我想动态创建该函数,并在使用值作为参数的单击时触发它。

jsGallery是我正在循环以构建图库项目的数组。

图库商品代码

function createDiv(type) {
  jsGallery.forEach((item) => {
    if (item.type === type) {
      let newDiv = document.createElement("div");
      newDiv.setAttribute("value", item.id);
      newDiv.setAttribute("class", "item" + " " + type);
      newDiv.setAttribute("id", "dynamic");

      newDiv.setAttribute("onClick", "testFire(value)");

      document.getElementById("galleryContainer").appendChild(newDiv);
    }
  })
}

TestFire功能

function testFire(value) {
  console.log(value);
}
javascript function dynamically-generated
3个回答
0
投票

testFirevalue)的参数是不存在的绑定,这就是为什么它返回未定义的原因。

代替

newDiv.setAttribute("onClick", "testFire(value)");

执行:

newDiv.onclick = () => testFire(newDiv.value);

顺便说一句,它仍然返回undefined,因为div元素只有global attributes


0
投票

感谢Andre Neuchter,我使用了您的方法,但由于值仍按未定义的值返回,因此对其进行了一些改动。

newDiv.onclick = () => testFire(item.id);


-1
投票

更改此:

© www.soinside.com 2019 - 2024. All rights reserved.