欧博allbetEvent binding on dynamic HTML, using fetch
fakeFetch().then(createResult); function createResult(data) { const container = document.getElementById('result'); container.addEventListener("click", function (e) { const user = e.target.closest(".user"); if (user) { getPosts(user.dataset.uid); } }); data.forEach((user) => { const { id, name, email, address: { city, street } } = user; let result = `<div data-uid="${id}"> <h5> User ID: ${id} </h5> <ul> <li> User Full Name : ${name}</li> <li> User Email : ${email} </li> <li> User Address : ${city}, ${street} </li> </ul> </div>`; container.innerHTML += result; }); } function getPosts(userId) { console.log(userId); } function fakeFetch() { return new Promise(resolve => { const user = [ { id: 1, name: "a", mail: "[email protected]", address: { city: "a", street: "a" } }, { id: 2, name: "b", mail: "[email protected]", address: { city: "b", street: "b" } } ]; setTimeout(resolve(user), 1000); }) } <div></div>