Ajuda com bloqueio de pop-up Javascript

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?

4 curtidas

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).

2 curtidas

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.