Назначение функции JQuery On Click в цикле For - PullRequest
0 голосов
/ 25 августа 2018

У меня есть функция, которая динамически создает элементы div на основе любого заданного ввода и позволяет им выбирать определенные элементы, нажимая на каждый элемент div.У меня так, что при нажатии на div вызывается функция (с именем checkToggle), которая делает его похожим на выбранный и корректирует некоторые связанные переменные.В элементе div есть флажок, который переключается этой функцией (отсюда и его имя).Короче говоря, мне пришлось прыгать через несколько обручей, чтобы заставить его работать, большинство из которых я даже не помню.Пожалуйста, не спрашивайте меня об этом.

Смысл этого вопроса заключается в следующем.Первоначально я использовал следующий код JavaScript для запуска функции при нажатии флажка.Он был назначен основной функцией, которая создала эти элементы div с помощью цикла for.

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

Это работает, но я хотел попытаться преобразовать все мои функции onClick в JQuery.Вот альтернатива JQuery, которую я создал.

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

Хотя сам код кажется нормальным, он не работает.Кажется, что функции JQuery нельзя создавать подобным образом в цикле for или что-то в этом роде.Он применяется после того, как элемент создан и помещен на свое место, поэтому я не думаю, что он имеет какое-либо отношение к тому, что элемент не готов.У меня также есть та же самая проблема с 2 другими подобными случаями.Есть какие-нибудь идеи о том, почему это не работает?

Дайте мне знать, нужна ли дополнительная информация, и если да, то какая информация нужна.

1 Ответ

0 голосов
/ 25 августа 2018

Необходимо обновить селектор до целевого HTML-идентификатора, используя символ #.Просто добавьте символ к запросу:

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

Это также относится к методам DOM querySelector или querySelectorAll.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...