Сценарий
У меня есть следующие динамические флажки на основе базы данных 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');
}
});
});
Проблема
Но я не получаю никаких предупреждений, когда пользователь нажимает на флажок. Кто-нибудь знает, что я здесь делаю неправильно?
У него также есть метод on, который принимает строку 'click' в качестве первого аргумента.
@Dharman О, хорошо!! Я использовал скобки в качестве текстового редактора, и он не отображает щелчок как метод. Вместо этого он показывает onClick. Вот почему я использовал это. Теперь у меня все заработало. Большое спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


использовать метод click вместо onclick
$(document).ready(function() {
$(".checkBoxes").click(function() {
if ($(this).is(":checked")) {
alert('checked');
}
});
});
Если вы динамически добавляете эти флажки, это означает, что когда вы регистрируете событие jQuery, эти флажки еще не существуют.
Создайте функцию для объявления/прикрепления события «щелчок» к этим флажкам сразу после их появления на странице.
Не могли бы вы привести пример? А зачем это делать? Потому что и без этого он работает нормально.
Что вы подразумеваете под "Он работает нормально", я думал, что это не так? Итак, идея состоит в том, чтобы иметь такую функцию, как function declare(){ $(".checkBoxes").click... } И затем, если вы загружаете некоторые данные на страницу, скажем, с помощью ajax. Сразу после того, как вы загрузите свои флажки, вы должны вызвать declare(), чтобы зарегистрировать одно и то же событие для вновь созданных флажков.
о, хорошо ... вы имеете в виду изменить событие .onClick на .click. да. Я сделал это, основываясь на некоторых других комментариях других пользователей, и поэтому теперь он работает нормально.
jQuery не имеет метода с именем
onclick