Таким образом, похоже, что когда вы динамически добавляете событие нажатия кнопки, вы добавляете его ко всем кнопкам на странице. Вот почему, когда вы нажимаете один, он запускается 3 раза.
Это видно по тексту button
в этой строке кода:
$(document).on('click', 'button', function() {
.....
});
Для решения этой проблемы вам необходимо: сделать прослушиватель кликов, указывающий c на кнопку. Вы можете сделать это, сделав более конкретный c селектор кнопки. Хотя это не идеальное решение, один из способов сделать это - дать каждой кнопке уникальный код. Что-то вроде button-##
, где ## - это другое число каждый раз, когда вы создаете новую кнопку. Затем вы можете сделать:
$(document).on('click', '#button-##', function() {
.....
});
Снова заменив ## на соответствующее значение Id.
Редактировать: на самом деле вы можете использовать ответ @Laif, отправленный вместо вызова $(document).on(
, просто сделайте b.click()