У меня есть этот скрипт, который берет данные из моей базы данных с помощью GET и показывает их в HTML, а затем обновляет в базе данных, когда я нажимаю на этот флажок, однако, когда я нажимаю этот флажок, PUT сделано три раза. Кто-нибудь знает, как это решить?Click event running 3 раза
Любая помощь приветствуется.
код ниже:
$.ajax({
type: 'GET',
async: false,
url: 'https://app.myapp.com/reservations',
success:function(reservations){
reservas.forEach (function (reservation) {
var HTML = [];
HTML.push('<tr class="reservations">');
HTML.push('<td> <input type="checkbox" class="checkbox" data-id="' + reservation._id + '" data-nome="' + reservation.nome + '" data-email="' + reservation.email + '" /> </td>');
HTML.push('<td>' + reservation._id + '</td>');
HTML.push('<td>' + reservation.nome + '</td>');
HTML.push('<td>' + reservation.email + '</td>');
HTML.push('</tr>');
$('tbody').append(HTML.join(""));
$(function(){
$(document).on('click', '.checkbox', function(){
console.log('salvo');
var update = $(this);
$.ajax({
type: 'PUT',
url: 'https://localhost/datas',
data: {
_id: update.attr('data-id'),
nome: update.attr('data-nome'),
email: update.attr('data-email'),
},
sucess:function (success) {
alert('updated!!');
},
error:function(err) {
console.log(err);
}
});
});
});
})
},
error:function(e){
console.log(e);
}
});
Вы назначили обработчик событий 3 раза (1 раз на каждый элемент из 'Reservas'). Так что он срабатывает 3 раза. – zerkms
@Nescau - Надеюсь, что вы не возражаете, я отбросил ваш вопрос, чтобы включить образец кода, чтобы этот вопрос все еще мог быть полезен для будущих посетителей. Без кода вопрос и ответы не имеют особого смысла. Не стесняйтесь редактировать что-либо конкретное, чего вы не хотите, но я призываю вас оставить все соответствующие части. –