Я новичок в jquery. Я пытаюсь динамически добавлять, редактировать, искать таблицу, хотя jquery, php. Мой код отлично подходит для первоначального добавления, редактирования, поиска. Однако после поиска, когда я заменяю записи таблицы через ajax и пытаюсь редактировать результирующие записи, функции click/change не работают.
$(document).ready(function () {
$(".edit_tr").click(function () {
var ID = $(this).attr('id');
$("#Client_" + ID).hide();
$("#address_" + ID).hide();
$("#Client_input_" + ID).show();
$("#address_input_" + ID).show();
})
$(".edit_tr").change(function () {
var ID = $(this).attr('id');
var Client = $("#Client_input_" + ID).val();
var address = $("#address_input_" + ID).val();
var dataString = 'id=' + ID + '&Client=' + Client + '&address=' + address;
$.ajax({
type: "POST",
url: "table_edit_ajax.php",
data: dataString,
cache: false,
success: function (html) {
$("#Client_" + ID).html(Client);
$("#address_" + ID).html(address);
}
});
} else {
alert('Enter something.');
}
});
// Edit input box click action
$(".editbox").mouseup(function () {
return false
});
// Outside click action
$(document).mouseup(function () {
$(".editbox").hide();
$(".text").show();
});
});
Событие назначается элементам, когда документ готов. Любой элемент, который добавляется позже, не будет привязан к какому-либо событию автоматически.
Либо попробуйте использовать.delegate или.on или присоединить событие явно после добавления нового элемента.
использовать .on()
Поскольку элементы добавляются динамически, поэтому он отсутствует в момент готовности DOM или загрузки страницы.
Таким образом, вы должны использовать Event Delegation
Синтаксис
$( elements ).on( events, selector, data, handler );
как это
$(document).on('click','.edit_tr',function(){
//code here
});
или
$('parentElementPresesntAtDOMready').on('click','.edit_tr',function(){
// code here
});