Jquery на изменение не работает после отражения результатов AJAX

0

Я новичок в 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();
});

});
Теги:
onchange
textbox

2 ответа

0
Лучший ответ

Событие назначается элементам, когда документ готов. Любой элемент, который добавляется позже, не будет привязан к какому-либо событию автоматически.

Либо попробуйте использовать.delegate или.on или присоединить событие явно после добавления нового элемента.

0

использовать .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
});
  • 0
    Огромное спасибо . Теперь, после включения, код работает нормально в Chrome ... но не в IE ... щелчок работает, но изменение не происходит ... на самом деле курсор не будет ждать, пока мы введем ... какие-нибудь идеи?
  • 0
    @ user3398760 Какую версию библиотеки jQuery вы используете и версию IE?
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню