Не выполняют события, ассоциируемые с кнопкой

У меня есть файл PHP, который я функционирует как главная страница, которая считает с какими-то этикетками HTML. Одна из этих этикеток button, когда он загрузил меня, страница выполняет файл язык сценариев JavaScript, у которого есть какие-то функции между этими, события этих этикеток.

Когда я нажимаю на одну из этих кнопок, он делает мне просьбу в сервер, который посылает мне данные в формате JSON. Я манипулирую этими данными добавляя их внутри таблицы и добавляя их в этикетках.

Один из данных, которых я приношу из сервера, я это помещаю внутри этикетки button, которая добавила класс "загружаться", где в файле язык сценариев JavaScript у меня есть событие для этого класса.

Проблема состоит в том, что, когда я нажимаю на эту кнопку с классом, "загружаться" не включает мне событие, которое он распределил ему, и то, чему не удалось заставить функционировать. Мой вопрос: что я врежу?: как я могу решать это? Я храню в архиве в PHP

<?php
session_start();
if (!isset($_SESSION["idcli"])) {
    header("location:index.php");
}
?>
<!DOCTYPE html>
<html lang="es">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://necolas.github.io/normalize.css/8.0.1/normalize.css">
    <link rel="stylesheet" href="css/home.css">
    <title>Home</title>
    <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
    <script src="js/eventos.js"></script>

</head>

<body>
    <aside>
        <?php
        $id = $_SESSION["idcli"];
        require("conexion.php");
        $consulta = "SELECT NOMBRE, APELLIDOS, IMAGEN FROM clientes WHERE IDCLI=$id";
        $resultado = mysqli_query($conexion, $consulta);
        $nfilas = mysqli_num_rows($resultado);
        if ($nfilas == 1) {
            while ($datos = mysqli_fetch_array($resultado)) {
                $nombre = $datos["NOMBRE"];
                $apellidos = $datos["APELLIDOS"];
                $imagen = $datos["IMAGEN"];
            }
            echo '<a href="#" id="img"><img src="' . $imagen . '" alt=""></a> ';
            echo '<a href="#" id="nombre">' . $nombre . " " . $apellidos . '</a>';
        }
        ?>

        <button class="btn" id="mcompras">Mis Compras</button>
        <button class="btn" id="productos">Productos</button>

    </aside>
    <header>
        <button id="cerrar">Cerrar Sesión</button>
    </header>
    <section>
        <div id="contenido"></div>
    </section>


</body>

</html>

файл Javascript

 $("document").ready(function () {
    compras();
    $("button#productos").on("click", function () {
        productos();
    });
    $("button#mcompras").on("click", function () {
        compras();
    });
    $("button#cerrar").on("click", function () {
        location = "cerrar.php";
    });
    $("table  tr  td button.descargar").on("click", function () {
        console.log("prueba");
    });

});

function productos() {
    $("header h2").remove();
    $("header").prepend("<h2>PRODUCTOS</h2>");
    var a = "";
    a = "<table><tr><th>IMAGEN</th><th>NOMBRE</th><th>VIDEO</th><th>PRECIO</th><th>ACCIÓN</th></tr>";
    $.getJSON("productos.php", "", function (r) {
        for (var i in r) {
            a += "<tr class='datos'>"
                + "<td><img src='" + r[i].imagen + "'></td>"
                + "<td>" + r[i].nombre + "</td>"
                + "<td><a href='" + r[i].urlvideo + "' target='_blank'>Ver video</a></td>"
                + "<td>" + r[i].precio + "</td>"
                + "<td><button value='" + r[i].idpro + "' class='comprar'>Comprar</button></td>"
                + "</tr>";
        }
        a += "<table>";
        $("section > div#contenido").html(a);
    });

}
function compras() {
    $("header h2").remove();
    $("header").prepend("<h2>MIS COMPRAS</h2>");
    var a = "", b = 0;
    a = "<table><tr><th>IMAGEN</th><th>NOMBRE</th><th>VIDEO</th><th>ACCIÓN</th></tr>";
    $.getJSON("miscompras.php", "", function (r) {
        for (var i in r) {
            a += "<tr class='datos'>"
                + "<td><img src='" + r[i].imagen + "'></td>"
                + "<td>" + r[i].nombre + "</td>"
                + "<td><a href='" + r[i].urlvideo + "' target='_blank'>Ver video</a></td>"
                + "<td><button value='" + r[i].idpro + "' class='descargar'>Descargar</button></td>"
                + "</tr>";
            b++;
        }
        a += "<table>";
        $("section > div#contenido").html(a);
        if (b == 0) {
            $("section > div#contenido table").append("<p class='nocompras'>No existen compras registradas</p>");
        }
    });


}
2
задан 11.09.2019, 18:36
1 ответ

Функция разряда, событие не находится в DOM, следовательно нужно делать эту функцию там fonde recive ответ в JSON.

-1
ответ дан 16.09.2019, 09:23
  • 1
    Привет Фредди, хотя этот ответ может служить guí в, serí в идеал, что añ adieses má s детали и ты объяснял dó nde deberí an делать себе изменения в có я говорю имеемый, чтобы решать эту проблему. Прочитай CГіmo отвечать и заверши , пробежавший для má s informació n. – Alvaro Montoro♦ 11.09.2019, 23:23