2016-03-14 5 views
0

Привет У меня проблема при запуске кода, второй код не будет работать. Однако, когда второй код должен выполняться каждый раз, когда код все еще работает. Первый код добавляет значение для базы данных и повторной работы базы данных, а вторая сумма кода удаляется из таблицы, но только сумма, которая была удалена из среды.не работает Multi AJAX код

моя проблема в jQuery не выполняется на div, загруженном ajax!

Как связать событие click с динамически добавленным элементом для этого кода? Как решить эту проблему ??

первый код:

<script> 
      $('#submit').on('click', function (e) { 
       e.preventDefault(); 
       var data = $('#create').serialize(); 
       $.ajax({ 
        headers: { 
         'X-CSRF-Token': $('input[name="_token"]').val() 
        }, 
        type: 'post', 
        url: '{!! URL::route('category') !!}', 
        data: data, 
        success: function (data) { 
         var dataDelete = 'category/' + data.id + '/delete'; 
         var dataCat = data.cat; 
         var dataId = data.id; 
         $('#append').load('loadCat'); 
        }, 
        error: function (xhr, status, errorThrown) { 
         alert(JSON.parse(xhr.responseText).category[0]); 
        } 

       }); 
       jQuery("#create").val(''); 
      }); 
     </script> 

Второго:

<script> 
     $('[data-delete]').on('click', function (e) { 
      e.preventDefault(); 
      var this_ = $(this); 
      var token = $('input[name="_token"]').attr('value'); 
      var id = $(this).data("id"); 
      $.ajax(
        { 
         url: "{{ url('/category') }}" + '/' + id + '/delete', 
         type: 'post', 
         dataType: "JSON", 
         data: {"id": id, '_token': token}, 
         success: function (data) { 
          $(this_).parent().parent().remove(); 
         } 
        }); 
      console.log("It failed"); 
     }); 
    </script> 
+2

Является ли элемент '[data-delete]' добавлен в DOM первым вызовом AJAX? –

+4

Не будет ли второй код всегда возвращать его? –

+0

Не только сбой при выполнении кода @ 54N1 –

ответ

2

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

Вам нужно сделать что-то ссылку

$("#parent_id_or_class").on('click','.dynamicAddedElement_id_class',function(){ 
// Code logic 

}); 

Более подробно посетить jQuery:How to bind click event on dynamically added element

+0

Я не знаю, как использовать этот код. –

0

этим кодом моя проблема решена.

$('body').on('click', '[data-delete]',function (e) { 
      e.preventDefault(); 
      var this_ = $(this); 
      var token = $('input[name="_token"]').attr('value'); 
      var id = $(this).data("id"); 
      $.ajax(
        { 
         url: "{{ url('/category') }}" + '/' + id + '/delete', 
         type: 'post', 
         dataType: "JSON", 
         data: {"id": id, '_token': token}, 
         success: function() { 
          $(this_).parent().parent().remove(); 
         } 
        }); 
      console.log("It failed"); 
     }); 
Смежные вопросы