Этот вопрос был решен и также получил много ответов, но я хочу кое-что добавить к нему.
Я пытался выяснить, почему мой клик элемент его стрельбы 77 раз, а не один раз.
в моем коде у меня был каждый, выполняющий ответ json и отображающий его как div с кнопками. А потом я объявил событие click внутри каждого.
$(data).each(function(){
button = $('<button>');
button.addClass('test-button');
button.appendTo("body");
$('.test-button').click(function(){
console.log('i was clicked');
})
})
Если вы напишите свой код таким образом, класс .test-button будет получать события нескольких кликов. Например, мои данные содержат 77 строк, поэтому каждая из них будет выполняться 77 раз, что означает, что я отклоню событие click в классе 77 раз. Если щелкнуть элемент, он будет запущен 77 раз.
Но если вы запишете это так:
$(data).each(function(){
button = $('<button>');
button.addClass('test-button');
button.appendTo("body");
})
$('.test-button').click(function(){
console.log('i was clicked');
})
вы объявляете элемент click после каждого. Это означает, что каждый из них будет выполняться 77 раз, а элемент click будет объявлен только один раз. Поэтому, если вы щелкнете по элементу, он будет запущен только один раз.