У меня динамически созданная таблица. В каждой строке этой таблицы есть ссылка «обновление». Когда я нажимаю на эту ссылку, все работает нормально, но я вижу в консоли сети (F12), что он генерирует несколько ajax-запросов вместо одного (один и тот же запрос отправляется несколько раз). Не могли бы вы проверить код ниже и помочь мне решить проблему.тот же запрос jquery ajax отправляется несколько раз
$('#load_table').click(function() {
$.get('cont/get_table', function (data) {
var item = $('<table>');
$.each(data.results, function (i, res) {
var row = $('<tr>').append(
$('<td class="a">').html(res.id),
$('<td class="b" contenteditable="true">').html(res.title),
$('<td class="c" contenteditable="true">').html(res.text),
$('<td>').html('<a href="#" class="update">Update</a>'));
item.append(row);
});
$("#display").html(item);
$("body").on("click", ".update", function() {
var row = $(this).closest('tr');
var id = row.find('td.a').text();
var title = row.find('td.b').text();
var text = row.find('td.c').text();
$.post('cont/update_row', {
id: id,
title: title,
text: text
}, function (data) {
//display data
});
});
});
});
спасибо за ваш ответ. Фактически, он не работал с «классом», и я изменил «класс» на «id». Теперь я изменил его на «класс», но проблема все еще существует. Вы не могли бы проверить. – EducateYourself
Нашел свою ошибку - думаю. Переместите функцию body.on ('click') вне вашего вызова ajax. Каждый раз, когда вы делаете этот вызов, вы добавляете другое событие к каждой кнопке обновления. – Beri
да, вы его нашли. большое спасибо :) – EducateYourself