щелчок флажка срабатывает только один раз

#javascript #jquery

Вопрос:

Когда у меня будет этот код:

 $('input[type="checkbox"]').click(function(){
  alert('2');
})
 

Это отлично работает, каждый раз, когда я нажимаю на флажок, я получаю предупреждение.

 $('input[type="checkbox"]').click(function(){
  alert('2');
  $("#fresh-table").bootstrapTable("refreshOptions", {
    detailView: false,
  });
})
 

Когда я добавляю следующее, это тоже отлично работает, но предупреждение срабатывает только один раз.
Как мне это исправить?

Редактировать

Использовал функцию onColomnSwitch для запуска события несколько раз. Исправлено, tnx!

Комментарии:

1. Будет ли флажок удален и добавлен обратно, например, путем установки какого-либо элемента с новым html? Если это так, вам нужно будет каждый раз заново настраивать прослушиватель событий или использовать делегированный прослушиватель событий

2. Этого я на самом деле не знаю, это часть таблицы начальной загрузки, но я так не думаю. события просто перестают выдавать предупреждение.

Ответ №1:

Пожалуйста, убедитесь, что вы включили файл js для «начальной загрузки» или нет. Если он не включен, то в консоли отобразится ошибка.

Я проверил код, и он работает на меня. Вы можете попробовать этот код :

 <!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://unpkg.com/bootstrap-table@1.18.3/dist/bootstrap-table.min.js"></script>

<script>
  $(document).ready(function(){
    $('input[type="checkbox"]').click(function(){
      alert('2');
      $("#fresh-table").bootstrapTable("refreshOptions", {
        detailView: false,
      });
    })
  });
</script>
</head>
<body>

<input type="checkbox" name="test_cb" id="test_cb"> <label for="test_cb">Test Checkbox</label>

<table border="1px solid black" id="#fresh-table">
    <tr><th>Name</th><td>Lorem Ipsum</td></tr>
    <tr><th>Email</th><td>example@gmail.com</td></tr>
</table>

</body>
</html>
 

Комментарии:

1. Tnx за помощь, но это работает только один раз… Каждый флажок, который я нажимаю после этого, не выдает предупреждение. Я отказался от этого, теперь я использую функцию onColomnSwitch, которая срабатывает каждый раз, когда я нажимаю флажок.