Olá, então eu não entendo muito de JavaScript e tentei usar o ChatGPT para gerar um script que permite que elementos em uma tabela exibam um bloco pop-up com informações ao serem clicados. Os elementos estão em uma tabela, se essa informação for necessária também.
const tableElement = document.querySelector("table");
// Add a click event listener to the table
tableElement.addEventListener("click", function(event) {
// Get the element that was clicked
const clickedElement = event.target;
// Only do something if the clicked element is a td
if (clickedElement.tagName === "TD") {
// Create the pop-up element and add it to the page
const popup = document.createElement("div");
popup.classList.add("popup");
popup.innerHTML = "This is the pop-up content!";
document.body.appendChild(popup);
// Position the pop-up next to the clicked element
const rect = clickedElement.getBoundingClientRect();
popup.style.top = `${rect.top + window.scrollY + 10}px`;
popup.style.left = `${rect.left + window.scrollX + 10}px`;
}
});
Ele criou isso, mas ao tentar não funciona. Alguma ajuda com o que está errado com isso?
O Discourse é uma aplicação JavaScript complexa e conseguir algo assim é provavelmente mais complicado do que um JavaScript simples… você provavelmente precisará de mais ajuda do que o ChatGPT pode oferecer, e não tenho certeza se você receberá esse nível de suporte gratuitamente aqui!
Dito isso, antes que alguém possa te dar um conselho aqui, precisaremos saber mais sobre o que você está tentando realizar. Onde no Discourse essa tabela está localizada? dentro de uma postagem? em algum outro lugar? Que informação estaria dentro deste bloco?
Acho que isso está certo, mas tenho pensado sobre isso (sem realmente olhar nenhum código) e acho que o Discourse Translator faz algo muito semelhante. Acho que é por aí que você deve começar, mas “Ei, então eu não sou muito experiente com javascript” provavelmente não é o nível de habilidade que você precisa para conseguir isso.
Estou imaginando que alguém familiarizado com a escrita de plugins precisará de 5 a 10 horas (mas talvez 2 para uma prova de conceito).
Tudo bem, hahaha.
A tabela no Discourse está localizada “Sob o cabeçalho”, na página inicial. Planejo inserir manualmente vários textos vinculados nas caixas. Me avise se precisar de mais alguma informação.