javascript - 在 For 循环中分配 JQuery On Click 函数

标签 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`);
});

虽然代码本身看起来没问题,但它不起作用。似乎 JQuery 函数不能像这样在 for 循环或其他东西中创建。它是在元素创建并放置到位后应用的,所以我认为它与元素未准备好没有任何关系。我在另外 2 个类似案例中也遇到了同样的问题。知道为什么这不起作用吗?

请告诉我是否需要更多信息,如果需要,需要什么类型的信息。

最佳答案

您需要使用 # 字符将选择器更新为目标 HTML ID。只需将字符添加到查询前面即可:

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

它也适用于 DOM 方法 querySelectorquerySelectorAll

希望有帮助!

关于javascript - 在 For 循环中分配 JQuery On Click 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52013177/

相关文章:

c++ - 基于范围的循环 C++11 for range(L,R)

javascript - 如何使用react(没有NODE.js)链接/引用html文件中的多个脚本?

javascript - nightmare.js-$未定义

javascript - 使用 JavaScript 保存 HTML 中突出显示的文本位置

javascript - 调用基于 jQuery Cookie 的函数

jquery - 沙里 (Sharrre) 失踪的 Google+ 计数

javascript - 挖空绑定(bind)文本框以选择文本

javascript - 如何从文本区域中选择某些内容。创建我的编辑器

javascript - `for of` JavaScript 语句的支持情况如何?

java - 在Java中使用for循环设置数组