Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Datatable está bloqueando eventos para hacer clic en el botón en otras páginas excepto en la página 1

Tengo una tabla de datos con todas las categorías en mi sitio web. Hay una función para eliminar una categoría con AJAX al seleccionar una categoría para mover los productos (sitios web en mi caso) a otra categoría. Así es como lo hago:

 $(".delete_category_instant").on('click', function(event) { $(this).hide(); $(this).closest("td").find(".editCategory").hide(); $(this).closest("td").find(".selectCategoryToMove").removeClass("d-none"); }); $(".selectCategoryToMove").find(".submitSelection").on('click', function(event){ $(this).closest("td").find(".selectCategoryToMove").addClass("d-none"); $(this).closest("td").find(".confirmAction").removeClass("d-none"); Toast.fire({ icon: 'warning', title: 'Please confirm your action!' }); }); $(".confirmActionYes").on('click', function(event) { var cat_id = $(this).attr('category-id'); var move_cat_id = $(this).closest("td").find("select").val(); $this = $(this); $.ajax({ type: 'GET', url: '{{ url("administrator/delete/category/") }}', data: { id: cat_id, move_id: move_cat_id }, success: function(response) { if(response.status == 1) { Toast.fire({ icon: 'success', title: 'Category deleted successfully!' }); $this.parents('tr').remove(); } else if(response.status == 2) { Toast.fire({ icon: 'warning', title: 'You are not allowed to do this action!' }); } else { Toast.fire({ icon: 'error', title: 'Could not delete this category!<br/>Please try again later!' }); } }, error: function(xhr, ajaxOptions, thrownError) { console.log(xhr.status); console.log(thrownError); } }); }); $(".confirmActionNo").on('click', function(event) { $(this).parent().addClass("d-none"); $(this).parent().closest("td").find(".delete_category_instant").show(); $(this).parent().closest("td").find(".editCategory").show(); });

Pero eso funciona solo en la página 1 en la tabla de datos. Dentro de otras páginas, el botón ni siquiera responde al hacer clic. ¿Cuál es la solución de eso? ¿Es ese un problema común que debo tener en cuenta en el futuro?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Es posible que sus controladores de eventos no se conecten a nuevos elementos porque el código que los configura solo se ejecuta una vez, al cargar la página. No puedo decirlo por su ejemplo, pero si ese es el caso, puede usar oyentes delegados en su lugar:

Por ejemplo:

 $(".confirmActionYes").on('click', function() {...})

se convierte

 $(document).on('click', '.confirmActionYes', function () {...})
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda