На странице с элементом управления вкладкой каждая вкладка содержит таблицу, каждый tr содержит td с кнопкой, которая имеет назначенное ей значение.jQuery .on не работает после ajax delete и div refresh
<td>
<button type="button" class="btn" name="deleteEventBtn" value="1">Delete</button>
</td>
Этот код ниже работает для первого удаления. После вызова AJAX & обновление div, никакие дополнительные кнопки удаления не могут быть нажаты. Файл .on прикреплен к документу. То же самое происходит, если я прикреплю его к телу или чем-нибудь ближе к кнопкам.
function deleteRecord(url, id, container) {
$.ajax({
type: "POST",
url: url,
data: { id: id },
success: function (data) {
$('#delete-popup').hide();
$(container).trigger('refresh');
}
});
}
$(document).ready(function() {
$(document).on('click', '[name^="delete"]', function (e) {
e.preventDefault();
var id = $(this).val();
$('#current-record-id').val(id);
$('#delete-popup').modal('show');
});
$('#delete-btn-yes').on('click', function (e) {
e.preventDefault();
var recordId = $('#current-record-id').val();
var recordType = location.hash;
switch (recordType) {
case "#personList":
deleteRecord(url, recordId, recordType);
break;
}
});
});
Любые идеи? Может ли это быть связано с подстановочным знаком для начала с [name^= "delete"]? Нет других элементов, где имя начинается с «delete».
EDIT
При замене
$(container).trigger('refresh');
с
location.reload();
это "работает", однако, что обновляет всю страницу, теряет позиции пользователей и побеждает точку использования AJAX.
В вашем «переключателе» отсутствует фигурная скобка в конце. – 1252748
Спасибо, я исправил это. Это было случайно удалено при удалении всех других операторов case, которые не подходят для этого примера. – MrNova
Оставьте предупреждение внутри кнопки удаления и выберите, появится ли оно каждый раз, когда вы нажимаете на него. – lshettyl