Действия при нажатии на динамические флажки

Сценарий

У меня есть следующие динамические флажки на основе базы данных MySQL

while($result = mysqli_fetch_array($query)){
    $srNumber = $result['srNumber'];
    $oaName = $result['oaName'];
    echo '
            <td><input class = "checkBoxes" type = "checkbox" name = "checkBoxArray[]" value = "'.$oaName.'"></td>
            <td>'.$oaName.'</td>
        </tr>';
}

У меня есть следующие коды jQuery для выполнения действия после того, как пользователь нажал на любой из этих флажков.

$(document).ready(function() {
    $(".checkBoxes").onclick(function() {
        if ($(this).is(":checked")) {
            alert('checked');
        }
    });
});

Проблема

Но я не получаю никаких предупреждений, когда пользователь нажимает на флажок. Кто-нибудь знает, что я здесь делаю неправильно?

jQuery не имеет метода с именем onclick

Dharman 24.07.2019 12:14

Однако у него есть click метод

RiggsFolly 24.07.2019 12:16

У него также есть метод on, который принимает строку 'click' в качестве первого аргумента.

Dharman 24.07.2019 12:17

@Dharman О, хорошо!! Я использовал скобки в качестве текстового редактора, и он не отображает щелчок как метод. Вместо этого он показывает onClick. Вот почему я использовал это. Теперь у меня все заработало. Большое спасибо!

Anu 24.07.2019 12:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

использовать метод click вместо onclick

$(document).ready(function() {
        $(".checkBoxes").click(function() {
            if ($(this).is(":checked")) {
                alert('checked');
            }
        });
    });

Если вы динамически добавляете эти флажки, это означает, что когда вы регистрируете событие jQuery, эти флажки еще не существуют.

Создайте функцию для объявления/прикрепления события «щелчок» к этим флажкам сразу после их появления на странице.

Не могли бы вы привести пример? А зачем это делать? Потому что и без этого он работает нормально.

Anu 24.07.2019 12:35

Что вы подразумеваете под "Он работает нормально", я думал, что это не так? Итак, идея состоит в том, чтобы иметь такую ​​функцию, как function declare(){ $(".checkBoxes").click... } И затем, если вы загружаете некоторые данные на страницу, скажем, с помощью ajax. Сразу после того, как вы загрузите свои флажки, вы должны вызвать declare(), чтобы зарегистрировать одно и то же событие для вновь созданных флажков.

Denis 24.07.2019 12:38

о, хорошо ... вы имеете в виду изменить событие .onClick на .click. да. Я сделал это, основываясь на некоторых других комментариях других пользователей, и поэтому теперь он работает нормально.

Anu 24.07.2019 12:40

Другие вопросы по теме