在For循环中分配“单击时单击JQuery”功能

时间:2018-08-25 00:45:53

标签: javascript jquery for-loop onclick

我有一个函数,可以根据输入的内容动态创建div元素,并让他们通过单击每个div来选择某些项目。我拥有它,因此,如果单击div,则会调用一个函数(名为checkToggle),使它看起来像已被选中并调整了一些相关变量。 div元素中有一个复选框,可通过此功能切换(因此其名称)。长话短说,我不得不跳过一些障碍才能使它正常工作,其中大多数我什至都不记得了。请不要问我。

这个问题的重点是这个。最初,当我单击复选框时,使用以下JavaScript代码运行该函数。它由主要功能分配,该主要功能使用for循环创建了这些div元素。

document.getElementById(`${itemID}-checkbox`).onclick = function() {
    checkToggle(`${itemID}-checkbox`);
};

这可行,但是我想尝试将所有onClick函数转换为JQuery。这是我创建的JQuery替代方案。

$(`${itemID}-checkbox`).on(`click`, function() {
    checkToggle(`${itemID}-checkbox`);
});

虽然代码本身看起来不错,但是它不起作用。似乎无法在for循环等中创建JQuery函数。它是在元素创建并放置到位后应用的,因此我认为它与元素尚未就绪没有任何关系。我也有其他2个类似案例的相同问题。知道为什么这样不起作用吗?

让我知道是否需要更多信息,如果需要,则需要什么样的信息。

1 个答案:

答案 0 :(得分:2)

您需要使用<body> <div id="main> <!--Put everything in here--> </div> </body> div#main { height: 100vh; background-color: lime; /*Just to see if it works*/ } 字符将选择器更新为目标HTML ID。只需在查询中添加字符:

#

它也同样适用于DOM方法$(`#${itemID}-checkbox`).on(`click`, function() { checkToggle(`${itemID}-checkbox`); }); querySelector

希望有帮助!