我有一个函数,可以根据给定的任何输入动态创建 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`);
});
虽然代码本身看起来没问题,但它不起作用。似乎 JQuery 函数不能像这样在 for 循环或其他东西中创建。它是在元素创建并放置到位后应用的,所以我认为它与元素未准备好没有任何关系。我在另外 2 个类似案例中也遇到了同样的问题。知道为什么这不起作用吗?
请告诉我是否需要更多信息,如果需要,需要什么类型的信息。
最佳答案
您需要使用 #
字符将选择器更新为目标 HTML ID。只需将字符添加到查询前面即可:
$(`#${itemID}-checkbox`).on(`click`, function() { checkToggle(`${itemID}-checkbox`); });
它也适用于 DOM 方法 querySelector
或 querySelectorAll
。
希望有帮助!
关于javascript - 在 For 循环中分配 JQuery On Click 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52013177/