У меня есть файл 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>");
}
});
}
Функция разряда, событие не находится в DOM, следовательно нужно делать эту функцию там fonde recive ответ в JSON.