Hy_ok
@Hy_ok

Почему не срабатывает change после перезаписи в таблицу?

В общем суть такая, есть страница на ней выводятся из бд данные, в этой таблице есть селекты, при изменении которых срабатывает событие change оно работает, все нормально, но когда я делая сортировку, то удаляю данные из таблицы с помощью jq и закидываю туда новые так же jq, но вот только после перезаписи в таблице почему перестает работать change
$('select[name="status-app"]').change(function(){
        id = jQuery(this).attr("id");
        console.log(id);
        jQuery.ajax({
            type: 'POST',
            url: "/ajax-status-app/",
            data: {
                "id": id,
                "status": jQuery(this).val(),
            },
            success: function(data){
                if(data.success){
                    var success = '<span style="color:green;">Обновлено!</span>';
                    jQuery("p#message-"+id).html(success).hide().fadeIn();
                    setTimeout(function() {$("p#message-"+id).fadeOut();}, 1000);
                } else if(!data.success){
                    var success = '<span style="color:red; margin-left:18px;">Ошибка!</span>';
                    jQuery("p#message-"+id).html(success).hide().fadeIn();
                    setTimeout(function() {$("p#message-"+id).fadeOut();}, 1000);
                }
            }
        });
        
    });

jQuery("#sort-application").click(function(){
    date = jQuery('input[name=date]').val();
    if(date == null){date = "";}
    type_app = jQuery('select[name="type_app"]').val();
    type_job = jQuery('select[name="type_job"]').val();
    status = jQuery('select[name="status"]').val();
    //alert(date);
    //console.log(date,type_app,type_job,status);
    jQuery.ajax({
        type: 'POST',
        url: "/ajax-sort/",
        data: {
            "date" : date,
            "type_app" : type_app,
            "type_job" : type_job,
            "status" : status
        },
        success: function(data){
            console.log(data);
            jQuery("#data-app").empty();
            jQuery("#data-app").append("<tr>"
                +"<th>Номер заявки</th>"
                +"<th>Адрес и заявитель</th>"
                +"<th>Тип заявки</th>"
                +"<th>Вид работы</th>"
                +"<th>Исполнители</th>"
                +"<th>Описание</th>"
                +"<th>Дата заявки</th>"
                +"<th>Телефон</th>"
                +"<th>E-mail</th>"
		        +"<th>Статус</th>"
		        +"<th></th>"
            +"</tr>");
            jQuery.each(data, function(){
                
                jQuery("tbody#data-app").append("<tr>"
                +'<td data-label="Номер заявки">Заявка №'+this.id+'</td>'
                +'<td data-label="Адрес и заявитель">'+this.name_street+' д.'+this.home+' кв.'+this.apartament+'<br>'+this.name_sobs+'</td>'
                +'<td data-label="Тип заявки">'+this.type_application+'</td>'
                +'<td data-label="Вид работы">'+this.type_of_work+'</td>'
                +'<td data-label="Исполнители">'+this.user1+'<br>'+this.user2+'</td>'
                +'<td data-label="Описание и заметка">'+this.description+'<br>Заметки:'+this.note+'</td>'
                +'<td data-label="Дата заявки">'+this.date+'</td>'
                +'<td data-label="Телефон">'+this.phone+'</td>'
                +'<td data-label="E-mail">'+this.email+'</td>'
                +'<td data-label="Статус">'
                    +'<select name="status-app" id="'+this.id+'">'
                        +'<option value="1" >Новая</option>'
                        +'<option value="2" >В работе</option>'
                        +'<option value="3" >Выполнена</option>'
                        +'<option value="4" >Отменена</option>'
                    +'</select>'
                    +'<p id="message-'+this.id+'" class="msg-st"></p>'
                +'</td>'
                +'<td data-label="Редактирование">'
                    +'<a id="add-applic" href="#add-application" data-id="'+this.id+'" onclick="editApplication(this)" class="button edit-app" title="Редактировать">'
                        +'<i class="fa fa-pencil-square-o"></i>'
                    +'</a>'
                +'</td>'
                +"</tr>");
                $('#'+this.id+' option[value='+this.status+']').prop('selected',true);
            });
        },
    });
});

<table class="table tab">
     <tbody id="data-app">
	 <tr>
    <th>Номер заявки</th>
    <th>Адрес и заявитель</th>
    <th>Тип заявки</th>
    <th>Вид работы</th>
    <th>Исполнители</th>
    <th>Описание</th>
    <th>Дата заявки</th>
    <th>Телефон</th>
    <th>E-mail</th>
    <th>Статус</th>
    <th></th>
</tr>
<tr>
<td data-label="Номер заявки">Заявка №106</td>
<td data-label="Адрес и заявитель">50 лет Советcкой власти д.5 кв.5<br>Голубева Надежда Анатольевна</td>
<td data-label="Тип заявки">Аварийная</td>
<td data-label="Вид работы">Инженерные</td>
<td data-label="Исполнители">Игнатов Валерий Игнатович<br></td><td data-label="Описание и заметка">werwerwerwerwerw<br>Заметки:</td>
<td data-label="Дата заявки">18 Января 2017 11:59:23</td>
<td data-label="Телефон"> 789464646</td>
<td data-label="E-mail"></td>
<td data-label="Статус">
       <select name="status-app" id="106">
               <option value="1">Новая</option>
               <option value="2">В работе</option>
               <option value="3">Выполнена</option>
               <option value="4">Отменена</option>
</select>
<p id="message-106" class="msg-st"></p></td>
<td data-label="Редактирование">
<a id="add-applic" href="#add-application" data-id="106" onclick="editApplication(this)" class="button edit-app" title="Редактировать"><i class="fa fa-pencil-square-o"></i></a>
</td>
</tr>
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
ewgenio
@ewgenio
Всё по чуть чуть
Поменяйте
$('select[name="status-app"]').change(function(){
на
$(document).on('change', 'select[name="status-app"]', function(){
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы