Уберите клик после POST с JQUERY

Я пытаюсь создать сортировку с jquery, Это работает только в первый раз, когда пользователь нажимает на th тег, но после запроса POST на функцию AJAX пользователь не может нажать на th пометить снова. Это мой код Помогите пожалуйста, заранее спасибо.

$("#sortHeader th").click(function () {
    event.preventDefault();
    sortValue= $(this).attr("data-value");
    $(this).siblings('data-sort').attr('class', 'sorting');
    if($(this).hasClass('sorting')){
        $(this).attr('class', 'sorting_asc');
        sortOrder="asc";
    }
    else if($(this).hasClass('sorting_asc')){
        $(this).attr('class','sorting_desc');
        sortOrder="desc";    
    }
    else  if($(this).hasClass('sorting_desc')){
        $(this).attr('class', 'sorting_asc');
        sortOrder="asc";
    }
    var saved =  $('#sortHeader').clone();//save state sort active column
    sort(this, saved);// function to call data on Controller
}); 

function sort(e,saved) {
    $.ajax({
        url: '@Url.Action("Method","Controller")',
        type: "POST",
        cache: false,
        data: { query: null, search: $('#QueryString').val(), sort: sortOrder, sort_value: sortValue, Id: $('#Id').val() },
        success: function (data) {
            $("body").html(data);
           //replace the headers with the old state
            $('#sortHeader').replaceWith(saved);
            $("#sortHeader th").unbind("click")// unbind click event
        },
    })
};     

1 ответ

Решение

Удалить строку $("#sortHeader th").unbind("click") от твоего ajaxsuccess функция и вам нужно click делегирование событий, поскольку ваше содержимое динамически загружается, как показано ниже.

$(document).on('click', '#sortHeader th', function () {
    // do your task here
});

Надеюсь, что это решит вашу проблему.

Другие вопросы по тегам